C# 静态变量作为grdiv视图asp.net中TemplateFields的标头
我有一个asp.net应用程序,其中有一个可编辑的网格视图,带有编辑、删除和添加选项。此网格与通常的模板字段相同。我还有一个静态类,它有静态字符串变量。我想保留这些静态变量的值作为模板字段的标题文本。 因此,我通过以下方式导入了常量类的命名空间:C# 静态变量作为grdiv视图asp.net中TemplateFields的标头,c#,asp.net,gridview,static,headertext,C#,Asp.net,Gridview,Static,Headertext,我有一个asp.net应用程序,其中有一个可编辑的网格视图,带有编辑、删除和添加选项。此网格与通常的模板字段相同。我还有一个静态类,它有静态字符串变量。我想保留这些静态变量的值作为模板字段的标题文本。 因此,我通过以下方式导入了常量类的命名空间: <%@ Import Namespace="ConstantManagerNamespace" %> 然后我尝试了同一个专栏: 1. <asp:TemplateField HeaderText=<%=ConstantMan
<%@ Import Namespace="ConstantManagerNamespace" %>
然后我尝试了同一个专栏:
1. <asp:TemplateField HeaderText=<%=ConstantManager.Name%>>
2. <asp:TemplateField HeaderText='<%=ConstantManager.Name%>'>
3. <asp:TemplateField HeaderText=<% ConstantManager.Name %>>
4. <asp:TemplateField HeaderText='<% ConstantManager.Name%>'>
all probable syntax to access my constant variable value but
1。
2.
3.
4.
访问常量变量值的所有可能语法,但
我得到一个语法分析器错误:
Literal content ('<asp:TemplateField HeaderText=') is not allowed within a 'System.Web.UI.WebControls.DataControlFieldCollection'.
Literal content(“出现问题的原因是您试图将服务器端控件/值嵌入另一个服务器端控件中。在asp.net中,这是不可能的,除非您使用数据绑定或自定义表达式生成器
对于您的具体情况,您需要创建一个自定义表达式生成器,它从静态类返回值
最终结果应如下所示:
<asp:TemplateField HeaderText="<$ ConstantManager:Name >">
并且,在页面加载时,调用:
protected void Page_Load(object sender, System.EventArgs e)
{
this.DataBind();
}
就我个人而言,我不喜欢这个解决方案,因为Page\u Load
部分。无论如何,与自定义表达式相比,这不需要任何特殊的声明/编码
我希望这有帮助!最好在GridView RowDataBond事件中绑定静态类变量
检查行类型是否为页眉ie
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = ConstantManager.Name;
}
请在此更新?我的问题是否可以理解?我对此有疑问…请在此回答…如果您从静态更改为非静态,它是否有效?错误看起来与使用静态变量无关。我的回答(下面)对您有帮助吗?
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = ConstantManager.Name;
}