<asp:updatepanel>在表中不起作用?</asp:updatepanel>

时间:2013-02-22 22:35:50

标签: c# asp.net ajax

我在<asp:UpdatePanel..>结构中使用<table>.. <tr> </tr>时遇到问题,我不知道为什么。当UpdatePanel被注释掉时,一切正常,但是当我取消注释UpdatePanel时,<tr> </tr>标记的内容甚至都没有显示在Visual Studio 2010中。当我运行网页但是这个内容会显示UpdatePanel不起作用。此项目中我的其他任何网页都没有此问题,但是,我再次使用<div>而不是<table&gt; s。 另一件事。 位于我的MasterPage中。 这是我的脚本:     

<asp:UpdatePanel ID="W9UpdatePanel" runat="server" UpdateMode="Always">
    <ContentTemplate>
        <tr>
          <td colspan="6">
            <div class="branchSetupSectionTitle">W-9 Information:</div>
          </td>
        </tr> 
        <tr>
           <td colspan="2">
             <asp:Button ID="btnDownloadW9Pdf" runat="server" 
             Text="Download W-9"  onclick="btnDownloadW9Pdf_Click" AutoPostBack="True" /> 
             <%--<asp:RegularExpressionValidator ID="RegularExpressionValidator24" 
              runat="server" ControlToValidate="txtFirstPaymentAmount" Display="Dynamic" 
              ErrorMessage="The dollar amount you entered is in the wrong format." 
              ForeColor="Red" ValidationExpression="^\d+(\.\d\d)?$">*</asp:RegularExpressionValidator>--%>
              <asp:CheckBox ID="chkW9FormSubmitted" runat="server" AutoPostBack="True" 
              oncheckedchanged="chkW9FormSubmitted_CheckedChanged" 
              Text=" I have submitted this W-9 Form" />
            </td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
         </tr> 
    </ContentTemplate>
</asp:UpdatePanel>

   </tr>

该事件将触发按钮和复选框,但整个页面都会刷新。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:5)

UpdatePanel需要渲染div或span才能正常运行。由于这两个元素都不能在表行之间呈现,因此UpdatePanel没有占位符来呈现回发响应html,因此它不起作用。

您的案例中的解决方法可能是查看页面的哪个部分不需要位于更新面板中并将其保留在外部。您可以在UpdatePanel中留下<td colspan="2">的内容。

答案 1 :(得分:0)

<asp:ScriptManager ID="scm" runat="server">
</asp:ScriptManager>
<fieldset>
<legend>Truck Master Entry Form</legend>
<asp:UpdatePanel ID="upd1" runat="server">
<ContentTemplate>
<table cellpadding="2" cellspacing="1">
<tr>
                    <td align="right">
                        Truck no :
                    </td>
                    <td align="left">
                        <asp:TextBox ID="truckno" runat="server" Width="120px" Height="20px" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Size :
                    </td>
                    <td align="left">
                        <asp:DropDownList ID="drptrucksize" runat="server" Width="120px" Height="20px" DataValueField="WEIGHT"
                            DataTextField="SIZE" OnSelectedIndexChanged="drptrucksize_SelectedIndexChanged"
                            AutoPostBack="true" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Type :
                    </td>
                    <td align="left">
                        <asp:TextBox ID="txttrucktype" runat="server" Width="120px" Height="20px" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Weight :
                    </td>
                    <td align="left">
                        <asp:TextBox ID="txtweight" runat="server" Width="120px" Height="20px" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        &nbsp;
                    </td>
                    <td align="left">
                        <asp:Button ID="btnsave" runat="server" Text="Save" Width="100px" Height="50px" />
                        <asp:Button ID="btncancel" runat="server" Text="Cancel" Width="100px" Height="50px" />
                    </td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>

答案 2 :(得分:0)

需要将更新面板放在表格之外。看看

Mohammad Shahnawaz的代码。