我在页面中添加了两个更新面板。我正在尝试更新第一个面板而不是第二个面板。第二个面板包含验证控件,无论我尝试什么,它们似乎都在踢。
代码
<asp:ToolkitScriptManager runat="server" ID="ScriptManager" />
<asp:UpdatePanel ID="updatePnl" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:label ID="NoConsignments" runat="server" ForeColor="red" />
<br />
<asp:TextBox ID="StartDate" runat="server" /> <asp:TextBox ID="EndDate" runat="server" /> <asp:Button ID="Dates" OnClick="btDates" runat="server" Text="Search" />
<asp:calendarextender ID="Calendarextender2" targetcontrolid="StartDate" Format="dd/MM/yyyy" runat="server"></asp:calendarextender>
<asp:calendarextender ID="Calendarextender3" targetcontrolid="EndDate" Format="dd/MM/yyyy" runat="server"></asp:calendarextender>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Dates" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
我遗漏了一些很多的中间代码。如果您想要更多代码,请告诉我们。
我错过了什么吗?或者这不是应该使用更新面板的方式吗?
非常感谢您提供的任何帮助
答案 0 :(得分:2)
我猜第二个UpdatePanel
中的验证控件正在触发客户端验证方法(因此更新面板不会回发,这是正确的)。
您可以通过使用ValidationGroup
属性来解决这个问题 - 将第一个更新面板中的验证控件分配给一个验证组(例如"ValidationGroupA"
),并将验证控件分配给第二个验证组将面板更新到另一个验证组。
答案 1 :(得分:1)
你的按钮和验证器必须specify ValidationGroups,例如。您的Searchbutton的Panel1和第二个UpdatePanel中的Validator的Panel2。
<asp:Button ID="Dates" ValidationGroup="Panel1" runat="server" Text="Search" />
...
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ValidationGroup="Panel2" ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox1" />
</ContentTemplate>
</asp:UpdatePanel>
答案 2 :(得分:1)
我暂时没有使用UpdatePanels,并且您没有在第二个面板中为验证器添加标记。
但是,我觉得您可能不会在验证see this tutorial
中添加群组e.g:
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" ValidationGroup="First"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ValidationGroup="First" ErrorMessage="TextBox1 should not be blank"
ControlToValidate="TextBox1"/>
<asp:Button ID="Submit1" runat="server" ValidationGroup="First"
Text="Submit 1"/>
<asp:TextBox ID="TextBox3" runat="server" ValidationGroup="Second"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage=" TextBox3 should not be blank"
ControlToValidate="TextBox3" ValidationGroup="Second"/>
<asp:Button ID="Submit2" runat="server" ValidationGroup="Second"
Text="Submit 2"/>
</div>
</form>
</body>
希望这有帮助,我没有错过这一点。