我正在创建一个带有表的表单,用户将注册所有要放在那里的客户端。我正在为两个文本框使用必需的字段验证器,用户必须填写信息。但问题是当我想用新信息更新文本框时,必填字段要求我用新文本填充它们,而这些不是我正在编辑的文本框。
问题出现在这里:
如果我想要更新其他文本框,则表单要求我填写下面的其他文本框,但我希望在更新文本框时,它不需要我填充其他文本框。
我的代码:
<asp:TemplateField HeaderText="Nome do Cliente">
<ItemTemplate>
<asp:Label ID="lblClienteNome" runat="server" Text='<%# Eval("cliente_nome")%>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtclienteNome" runat="server" Text='<%# Eval("cliente_nome")%>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtbnome" runat="server" />
<asp:RequiredFieldValidator ID="valName" ControlToValidate = "txtbnome"
runat="server" ErrorMessage="*Required" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "E-mail do Cliente">
<ItemTemplate>
<asp:Label ID="lblClienteEmail" runat="server" Text='<%# Eval("cliente_email")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtclienteEmail" runat="server" Text='<%# Eval("cliente_email")%>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtbemail" runat="server"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate = "txtbemail"
runat="server" ErrorMessage="*Required" />
<asp:LinkButton ID="LinkButton1" CommandName="AddNew" runat="server" CssClass="btn btn-large btn-info pull-right">
<i class="glyphicon glyphicon-plus"></i> Adicionar
</asp:LinkButton>
</FooterTemplate>
在更新字段时,如何让它不要求我填写其他文本框?
答案 0 :(得分:2)
您可以创建自定义属性:
val rdd1 = sc.parallelize( List( "a", "b", "c", "d", "e"))
val rdd1a = rdd1.map(x => (x, 110, 110 - x.toByte )).collect()
用法:
public class ButtonRequiredAttribute : RequiredAttribute
{
private readonly string _buttonName;
public ButtonRequiredAttribute(string buttonName)
{
_buttonName = buttonName;
}
public override bool IsValid(object value)
{
var form = HttpContext.Current.Request.Form;
//only validating if "add"-Button is pressed
if (form[_buttonName] != null)
{
return base.IsValid(value);
}
//When no "add"-Button is pressed, no validation is needed
return true;
}
}
答案 1 :(得分:0)
这里的所有答案对我都非常有用,但我找到了解决问题的简单方法。
我忘了显示两个按钮的代码,更新和删除,我只是使用CausesValidation
的属性让我点击它们时,不需要填写要更新的文本或删除。
所以,我带有两个按钮的代码就是这样的:
<asp:CommandField ShowEditButton="True" ShowDeleteButton="true" CausesValidation="False"/>
有关更多信息,我在此链接中发现它有用:
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.causesvalidation.aspx