ASP.NET - 在.aspx页面中使用变量

时间:2012-02-18 22:15:22

标签: c# asp.net

我正在尝试从.aspx文件访问我的.cs文件中的变量或属性,但没有运气。我已经看过这里的几个主题,并尝试了所有这些但仍然没有运气。这是场景;我有一个带有文本框和一行RequiredFieldValidator的GridView控件:

<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>

表单上有一个ValidationSummary控件正在运行,因为我可以将ErrorMessage设置为文字字符串并查看它是否有效。

这是我的.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();
}

关于它为什么不起作用的任何想法?

1 个答案:

答案 0 :(得分:2)

更改此

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

进入此

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

并在页面加载中调用DataBind()

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