2012-02-18 15 views
1

我试图从.aspx文件访问.cs文件中的变量或属性,但没有任何运气。我已经看过这里的几个主题,并尝试过所有这些,但仍然没有运气。这是场景;我有与文本框GridView控件和一个排一个RequiredFieldValidator:ASP.NET - 在.aspx中使用变量

<asp:TemplateField HeaderText="User Name" ItemStyle-Width="10px"> 
    <ItemTemplate> 
     <asp:Label ID="lblWebLogin" runat="server" Text='<%#Eval("WebLogin") %>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtWebLogin" runat="server" Text='<%#Eval("WebLogin") %>'></asp:TextBox> 
     <asp:RequiredFieldValidator ID="rfvEditWebLogin" runat="server" 
      ControlToValidate="txtWebLogin" Display="None" ErrorMessage='<%= this.LoginRequired %>'></asp:RequiredFieldValidator> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtWebLogin" runat="server"></asp:TextBox> 
    </FooterTemplate> 
</asp:TemplateField> 

有另外一个工作,因为我可以设置的ErrorMessage到一个文本字符串,并看到它的工作形式ValidationSummary控件。

下面是从我的.cs代码:

public string LoginRequired 
{ 
    get { return "Error, please try again"; } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
     BindDataToGrid(); 
} 

private void BindDataToGrid() 
{ 
    DataTable dt; 
    SqlCommand sc = new SqlCommand(); 
    DAL oDAL = new DAL(DBInformation.Instance.CurrentEncodedConnectionString, DBInformation.Instance.ConnectionTimeout); 

    //Get User Information. 
    sc.CommandText = Constants.StoredProcedureNames.GetUsers; 
    dt = oDAL.SPDataTable(sc, "AllUsers"); 
    gvUsers.DataSource = dt; 

    foreach (DataRow dr in dt.Rows) 
     lUser.Add(new User()); 

    gvUsers.DataBind(); 
} 

任何想法,为什么它不工作?

+0

你不应该绑定的ErrorMessage <%# %>,而不是做的Response.Write <%= %> – 2012-02-18 22:17:47

+0

OMG,我现在觉得很傻......那个工作.... th anks。你可以发帖作为答案,所以我可以标记它。 – Robert 2012-02-18 22:20:41

+1

nuux的答案也是正确的,所以你接受:) – 2012-02-18 22:31:29

回答

2

更改此

ErrorMessage='<%= this.LoginRequired %>' 

这个

ErrorMessage='<%# this.LoginRequired %>' 

,并呼吁DataBind()在页面加载

protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
    { 
    DataBind(); 
    BindDataToGrid(); 
} 
} 
相关问题