a.aspx有一个label控件.
在后台声明了一个变量.
public string a = "asdfad";
现在想在前台调用
<asp:Label ID="Label1" runat="server" Text="<%=a%>"></asp:Label>
结果没有显示.如果直接写在外面
<%=a%>
会显示出来.
请高手有何方法实现我想要的效果.
限在控件调用后台的变量.

解决方案 »

  1.   

    DataBind();
    cs文件中加上这句
      

  2.   

    绑定方式还有一种:
    <%# a %>
      

  3.   

    可以显示的出来,你在前面定义public string a;不进行赋值,然后在Page_Load里if(!this.ISPostback){a="sfsd";}这样就可以了。
      

  4.   


        protected void Page_Load(object sender, EventArgs e)
        {
           DataBind(); 
        }
      

  5.   

    我的用意是自定义一个控件
    在后台定义一个属性

    private string _a;
        public  string a//显示大图的页面
        {
            get { return _a;}
            set { _a= value ; }
        }然后调用页面设置a,
    再显示a的值.
    等回来结分
      

  6.   

    现在问题是label等控件都能取到变量.

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:mysqlpath %>" 
        SelectCommand="SELECT * FROM [shopupfile] WHERE ([shopcom] = @shopcom) ORDER BY [imgtaxis], [id]">
        <SelectParameters>
            <asp:FormParameter FormField="shopcom" Name="shopcom" Type="String" DefaultValue="<%# a%>" />   //但这里就不行了不知如何搞</SelectParameters> 
    </asp:SqlDataSource>
      

  7.   

    后台:
    private string a = "asdfad"; 
    public string A
    {
        get{return a;}
    }前台:
    可以通过<%=A%>可以得到后台的a 的值.
      

  8.   

    <%=A%>//这样前台是可以得到
    但如果控件调用就不行了如:
    text="<%=A%>//"得要在后台用上DataBind(); 前台要改成<%# A %>才行
    但现在我的问题是
    <asp:FormParameter FormField="shopcom" Name="shopcom" Type="String" DefaultValue=" <%# a%>" />   </SelectParameters> //但这里就不行了不知如何搞
      

  9.   

     value='<%# DataBinder.Eval(Container.DataItem, "nbId")%>' 
    这是VS2005中的绑定
      

  10.   

    分析器错误消息: 仅对具有 DataBinding 事件的对象提供数据绑定表达式支持。System.Web.UI.WebControls.FormParameter 没有 DataBinding 事件
      

  11.   

    请高手帮我看看如何才能得到后提供的变量啊.
    DefaultValue=" <%# a%>" 
    这样是不行的.我还初手,帮个忙
      

  12.   

    代码如下public string a  //声名个全局变量
    a="asdfad";
    label1.Text = a;
      

  13.   

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:mysqlpath %>" 
        SelectCommand="SELECT * FROM [shopupfile] WHERE ([shopcom] = @shopcom) ORDER BY [imgtaxis], [id]">
        <SelectParameters>
            <asp:FormParameter FormField="shopcom" Name="shopcom" Type="String" DefaultValue="<%# DataBinder.Eval(Container.DataItem, 'nbId')%>" />
            
        </SelectParameters> 
    </asp:SqlDataSource>
      

  14.   


    public string a ;
    string stra="asdfad";
    a=stra;
    前台就这样
      

  15.   

    现在是这个要取值.不是直接在前台显示.
    <asp:FormParameter FormField="shopcom" Name="shopcom" Type="String" DefaultValue="<%# DataBinder.Eval(Container.DataItem, 'a')%>" />
      

  16.   


    把它放在中间就行了:
    <asp:Label ID="Label1" runat="server" > <%=a%> </asp:Label>