【问题标题】:In aspx-code, can we use Templatefield .HeaderText within validation control ErrorMessage?在 aspx 代码中,我们可以在验证控件 ErrorMessage 中使用 Templatefield .HeaderText 吗?
【发布时间】:2015-06-02 11:58:40
【问题描述】:

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

我举一个我想在 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...

请注意 ErrorMessage 代码中的 ??HeaderText??。我希望将 HeaderText(“姓氏”)插入到 ??HeaderText??这样当呈现错误文本时,错误文本将是:“需要'姓氏'值。”(当然,不带引号)。

您的 cmets 和带有示例的解决方案将非常受欢迎和有帮助。

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

谢谢,提前...约翰

【问题讨论】:

    标签: asp.net webforms web-controls


    【解决方案1】:

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

    1. 将名为App_GlobalResources 的asp.net 文件夹添加到您的网站根目录,并在其中添加一个新的.resx 文件。叫它HeaderNames.resx
    2. 打开该文件,并添加一行:LastNameHeaderText 作为其名称,Last Name 作为其值。
    3. 然后,在您的 RequiredFieldValidator 中,将您的 ErrorMessage 属性替换为以下内容:

      ErrorMessage = '<%# Resources.HeaderNames.LastNameHeaderText + " value is required." %>'
      
    4. 最后,要在模板标题上使用相同的内容,请在 GridView(或其他)数据绑定事件中添加以下内容:

      protected void MyDataBound(object sender, EventArgs e)
      {
          ((GridView)sender).Columns[1].HeaderText = Resources.HeaderNames.LastNameHeaderText;
      }
      

    【讨论】:

    • 感谢您的回复。我从你那里学到了一个很好的技巧 :-) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-07-07
    • 2011-09-05
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2011-06-06
    相关资源
    最近更新 更多