C# 静态变量作为grdiv视图asp.net中TemplateFields的标头

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

我有一个asp.net应用程序,其中有一个可编辑的网格视图,带有编辑、删除和添加选项。此网格与通常的模板字段相同。我还有一个静态类,它有静态字符串变量。我想保留这些静态变量的值作为模板字段的标题文本。 因此,我通过以下方式导入了常量类的命名空间:

<%@ 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;                  
    }