0

我有一个用于修改客户信息的页面,我允许在页面上为每条客户信息设置两个文本框,所以如果客户有 5 条信息,那么我的页面将有 10 个文本框,一个用于显示旧值,一个用于输入新值。所有具有原始信息的文本框都是可见的,然后基于用户选择修改该列的列文本框可见。

所有文本框都有必填字段验证器,用于输入新值。我们允许单个字段修改。我面临的问题是,假设用户选择修改用户的指定字段并且指定字段没有任何值,然后其他一些字段假设组织名称没有值,只有选定的字段相应的文本框将可见,当我尝试提交信息时,它给了我需要组织名称的错误,即使组织名称的新文本框不可见,关于为什么会发生这种情况的任何想法?

编辑:

<td align="right"><span>Designation:</span></td>
<td>
    <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
</td>
<td>
    <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtNewDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
    <asp:RequiredFieldValidator ValidationGroup="Group6"
        ControlToValidate="ModifyCustomerByCategorytxtNewDesignation" runat="server"
        EnableClientScript="true" Display="Dynamic" 
        ErrorMessage="The Designation field is required." Text="*">
    </asp:RequiredFieldValidator>
</td> 
4

2 回答 2

1

如果您只允许修改单个字段,则为每个字段添加一个单独的按钮,并使其ValidatinGroup与该字段验证器共享一个唯一的(您的问题是因为它们都共享一个ValidatinGroup,所以它们都得到验证,可见与否)。

于 2012-06-04T10:06:02.380 回答
0
 <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtDesignation"
    class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
 <asp:CustomValidator ID="cvmodify" runat="server" 
    ClientValidationFunction="modify" CssClass="validators" ErrorMessage="*" 
        Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>
 <td>
 <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtNewDesignation"
    class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
 <asp:CustomValidator ID="cvModify" runat="server" 
    ClientValidationFunction="modify" CssClass="validators" ErrorMessage="*" 
        Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>


 <script language="javascript" type="text/javascript">
   function modify(oSrouce, args) {
     var myTextBox = document.getElementById('<%= ModifyCustomerByCategorytxtDesignation.ClientID %>');
     var myTextBox = document.getElementById('<%= ModifyCustomerByCategorytxtDesignation.ClientID %>');

                if (myTextBox.value) {
                    if (myTextBox.value == "")
                        args.IsValid = false;
                    else
                        args.IsValid = true;
                }
            }
 </script>
于 2014-05-08T09:08:47.903 回答