更新面板无法正常工作?

时间:2010-08-04 08:39:03

标签: asp.net

我在页面中添加了两个更新面板。我正在尝试更新第一个面板而不是第二个面板。第二个面板包含验证控件,无论我尝试什么,它们似乎都在踢。

代码

<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>

我遗漏了一些很多的中间代码。如果您想要更多代码,请告诉我们。

我错过了什么吗?或者这不是应该使用更新面板的方式吗?

非常感谢您提供的任何帮助

3 个答案:

答案 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>

希望这有帮助,我没有错过这一点。