一个页面里包含一个GridView1,显示数据,在下面使用label显示多少页。共<asp:Label ID="Label1" runat="server" Text=""><%= GridView1.PageCount %></asp:Label>页上面那行代码可以正常显示。为什么使用
共<asp:Label ID="Label1" runat="server" Text="<%= GridView1.PageCount %>"></asp:Label>页,显示不出来。还有,数据绑定的时候不是使用<%# %>,那<%= %>是干什么用的?谢谢

解决方案 »

  1.   

    Text='<%= GridView1.PageCount %>'>换单引号
    <%= %> 可以引用 页面后置文件代码中的变量 单变量要求声明 protected 
    <%# %> 控件中绑定数据源 绑定数据源上下文中变量显示的
      

  2.   

    <asp:Label ID="Label1" runat="server" Text="<%= GridView1.PageCount %>"></asp:Label>
    这种写法是错误的, <asp:Label >中ID、runat、Text等是它的属性,<%= GridView1.PageCount %>这是得到页码的值,必须单独写,楼主刚开始写代码吧,多看看就有感觉了。
      

  3.   

    数据绑定表达式必须包含在<%#和%>字符之间
    < %= %>: 在程序执行时被调用,可以显示后台变量值
    < % %>: 内联代码块里面可以在页面文件*.aspx或*.ascx文件里面嵌入后台代码
      

  4.   

    <%= %>显示后台变量。。 
     比如<%=text1.ClientID%> 可以用在aspx、ascx页面中,包括html代码、JS代码等等
    以上数据源(text1.ClientID)来自后台变量。。<%# %>绑定上下文控件值,数据源来自上下文。。 
    比如<%# DataBinder.Eval(Container,"列名")%> 直接显示。
    <%# ChangeFormat(DataBinder.Eval(Container,"列名"))%> 作为后台方法的参数
    以上数据源(DataBinder.Eval(Container,"列名"))均来自于环境上下文。
      

  5.   

    <%= %>这个相当于是赋值,var bb=<%= aa%>,就是将CS代码中的aa赋值给bb<%# %>这个是绑定方法和数据用的,一般是在容器控件中使用。<%# Eval("UserID") %>是给GridView绑定UserID字段,<%# ReturnState("aa")%>这个是执行CS中的ReturnState()方法
      

  6.   

    <% = %>这一个是将内容直接输出的。出就是将来直接在服务器上被替代为具体数据后发送到客户端的!与ASP中的相同。<%#%>这个是用于数据绑定的,如果是支持数据绑定的控件可以用这个直接进行绑定。如果绑定数据库中其一列的值!一般最多见于GIRD控件或一些其他支持绑定的控件上使用的!
      

  7.   

    <%=var%>不能用在服务器控件中充当属性值,其他一般没问题
    <%#...%>用在服务器控件中,绑定数据的
      

  8.   

    用单引号
    <%# %> 是对控件赋值
    <%= %> 相当于<% Response.Write("这是一个值"); %>,asp,jsp入门里都有类似的说明
      

  9.   


    <asp:TextBox ID="TextBox1" runat="server" Text='<%=intVal %>'></asp:TextBox>
    上面这句无法绑定,,单引号是不行的,和引号无关,,在服务器控件属性中绑定值用<%# %>  原理暂时不明,期待哪位大哥现个身
      

  10.   


    <asp:Label ID="Label1" runat="server" Text='<%= GridView1.PageCount %>'></asp:Label>正解
      

  11.   


    <asp:Label ID="Label1" runat="server" Text="%# GridView1.PageCount %>"></asp:Label>后台在page_load 事件里写Page.DataBind();
      

  12.   

    第一,绑定服务器控件并赋值时不能用<%=  %>
    <%=  %>只能出现在html中
    第二,<%=  %>绑定后台变量时,并不是必须声明为protected
    第三,数据显示控件,如Gridview,Datalist之类绑定数据源后
    用<%#= %>绑定数据源中的元素。
      

  13.   

    我给你推荐一个自己去发现的方法:创建一个aspx,把其<form />内容改为如下:<form id="form1" runat="server">
    <div>
        <%= abc %>
        <br /><% ---------------------- %>
        <asp:Label runat="server" Text="<%# abc %>" />
    </div>
    </form>
    这里,一条貌似“华丽”的分割线其实是个bug!没有关系,保留它。然后在后台代码中写protected string abc;protected void Page_Load(object sender, EventArgs e)
    {
        abc = "hello!";
    }在页面设计窗口(或者解决方案上也行)点击鼠标右键,选择“在浏览器上观看”,这是就会弹出浏览器页面。当然,它会报告一个编译错误,可是有两个连接可选,你就可以选择第二个“查看完整的编译源”!你看到了编译出的代码,还有什么会不清楚吗?找到两个abc分别是被asp.net如何输出的吧!
      

  14.   

    sorry!少写了一条代码protected void Page_PreRender(object sender, EventArgs e)
    {
        this.DataBind();
    }
    当然,如果直接找到Label对象(可惜我在demo中没有给它设置ID),直接调用它的DataBind()更好。
      

  15.   

    换单引号
    <%= %> 可以引用 页面后置文件代码中的变量 单变量要求声明 protected  
    <%# %> 控件中绑定数据源 绑定数据源上下文中变量显示的
      

  16.   

    换单引号
    <%= %> 可以引用 页面后置文件代码中的变量 单变量要求声明 protected   
    <%# %> 控件中绑定数据源 绑定数据源上下文中变量显示的
      

  17.   

    可能有人误认为 <%# %> 中间只能写绑定表达式,这是误解。上面的例子已经说明了它可以是什么!绑定表达式(Eval、Bind等写法)这是那种可以的写法中可以使用的方法而已,而并不是说这个标记方法里边是专写绑定表达式的。