我正在尝试从.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();
}
关于它为什么不起作用的任何想法?
答案 0 :(得分:2)
更改此
ErrorMessage='<%= this.LoginRequired %>'
进入此
ErrorMessage='<%# this.LoginRequired %>'
并在页面加载中调用DataBind()
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBind();
BindDataToGrid();
}
}