如何在ASP .NET中处理多种形式

时间:2009-08-03 14:26:27

标签: asp.net webforms

页面简短描述:用户搜索帐户(第一种形式是搜索帐户),帐户信息显示在下方,您可以对该帐户进行更改(第二种形式)。

我目前只有一种形式有这个功能,但是当我尝试验证时遇到了问题(因为按下这两个按钮中的任何一个都会尝试验证所有字段,虽然这是不对的,因为如果你正在搜索你不需要填写其他字段进行编辑)。此外,当我在任何文本框中按Enter键时,单击搜索按钮,如何将文本框与特定按钮相关联。

2 个答案:

答案 0 :(得分:4)

要仅验证某些表单字段,您可以向需要在该组中验证的所有验证程序以及提交它们的按钮添加公共ValidationGroup。或者,在按下时,设置想要触发验证的任何按钮的CausesValidation属性。

您还可以在asp:panel中指定default button。这可以控制在面板中按Enter键时触发的按钮。因此,在表单周围包含一个面板,并在面板中指定按钮,如下所示:

<asp:Panel ID="PanelForm" runat="Server" DefaultButton="ButtonSubmit">

    <!-- Form fields go here... -->

    <asp:Button ID="ButtonSubmit" runat="Server" Text="Submit" />

</asp:Panel>

答案 1 :(得分:2)

如何在搜索按钮上使用CausesValidation属性。

或者你可以使用像这样的自定义验证器

<asp:TextBox ID="TestBox" runat="server"></asp:TextBox>
<asp:CustomValidator ErrorMessage="Not" ID="CustomValidator1" Enabled="true"    
   ControlToValidate="TestBox"
   runat="server"></asp:CustomValidator>
<asp:Button ID="myButton" CausesValidation="true" OnClick="TestClick" runat="server" />

然后让你的按钮有一个像这样的onclick命令

public void TestClick(object sender, EventArgs e)
{
    if(this.TestBox.Text == "me") this.CustomValidator1.IsValid = false;
    return;
}