我有一个用于修改客户信息的页面,我在页面上为每条客户信息允许两个文本框,所以如果客户有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>
答案 0 :(得分:1)
如果您只允许单个字段修改,则为每个字段添加一个单独的按钮,并使其与该字段验证器共享一个唯一的ValidatinGroup
(您的问题是因为它们共享一个{{1} },所以他们都得到验证,可见或不可见。)
答案 1 :(得分: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>