Asp.net 在aspx代码中,我们可以在验证控制ErrorMessage中使用Templatefield.HeaderText吗?

Asp.net 在aspx代码中,我们可以在验证控制ErrorMessage中使用Templatefield.HeaderText吗?,asp.net,webforms,web-controls,Asp.net,Webforms,Web Controls,在aspx代码中,我想在验证控件的ErrorMessage中引用Templatefield HeaderText作为值,但不知道如何引用。我想减少复制粘贴错误 我给出了一个我想在aspx代码中编码的示例 <asp:TemplateField HeaderText="Last Name" SortExpression="cLASTNAME"> <EditItemTemplate> <asp:TextBox ID="txtLastName" runat

在aspx代码中,我想在验证控件的ErrorMessage中引用Templatefield HeaderText作为值,但不知道如何引用。我想减少复制粘贴错误

我给出了一个我想在aspx代码中编码的示例

<asp:TemplateField HeaderText="Last Name" SortExpression="cLASTNAME">
   <EditItemTemplate>
      <asp:TextBox ID="txtLastName" runat="server" Text='<%# Bind("cLASTNAME") %>' MaxLength="20" CssClass="ucIsRequired"></asp:TextBox>
      <asp:RequiredFieldValidator ID="rqfvLastName" runat="server" 
         ControlToValidate="txtLastName" 
         ErrorMessage="'??HeaderText??**' value is required."
         Display="none" ValidationGroup="valgrpDetails"
         SetFocusOnError="False" Font-Size="Small"></asp:RequiredFieldValidator>
   </EditItemTemplate>
...etc...
请注意错误消息代码中的标题文本。我想将HeaderText(“姓氏”)插入到??HeaderText??这样,当呈现错误文本时,错误文本将是:“‘Last Name’值是必需的。”(当然,不带引号)

您的评论和示例解决方案将非常受欢迎和有用

当然,如果有办法在代码隐藏中引用Templatefield的HeaderText,请提供一个示例片段


提前谢谢…John

一个可能的解决方案是使用资源文件,然后在需要时读取其值,并且不想重复字符串

  • 将名为
    App\u GlobalResources
    的asp.net文件夹添加到网站根目录,并在其中添加一个新的.resx文件。称之为
    HeaderNames.resx
  • 打开该文件,添加一行,其名称为:
    LastNameHeaderText
    ,值为
    lastname
  • 然后,在
    RequiredFieldValidator
    中,将
    ErrorMessage
    属性替换为以下内容:

    ErrorMessage = '<%# Resources.HeaderNames.LastNameHeaderText + " value is required." %>'
    

  • 谢谢你的回复。我从你那里学到了一个好把戏:-)谢谢。
    protected void MyDataBound(object sender, EventArgs e)
    {
        ((GridView)sender).Columns[1].HeaderText = Resources.HeaderNames.LastNameHeaderText;
    }