繁体   English   中英

UpdatePanel未更新

[英]UpdatePanel not updating

无论出于何种原因 - 我的更新面板没有更新。 现在请注意,这都在gridview内的模板字段的项模板中。 主要嵌套。 请帮帮我

<ItemTemplate>
   <asp:ImageButton ID="bttnEdit" runat="server" injid='<%# Eval("Id") %>' causeid='<%# Eval("Cause_Type") %>' natureid='<%# Eval("Nature_Type") %>' CausesValidation="False" ImageUrl="~/images/bttnEdit.gif" Text="Edit" OnClientClick ="loadmodal(this.injid,this.causeid,this.natureid);"  />
   &nbsp;<asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" 
   CommandName="Delete" ImageUrl="~/images/bttnDelete.gif" Text="Delete" />
   <asp:Panel ID = "Pnlmodal" runat ="server" style="background-color:White; padding:1em 6px;">  
      <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional"  >
      <Triggers>
         <asp:AsyncPostBackTrigger ControlID ="bttnEdit" EventName ="Click" />
      </Triggers>
         <ContentTemplate>
            <asp:FormView ID="FormView2" runat="server" DefaultMode ="Edit" DataSourceID ="SqlDataSource8">
               <EditItemTemplate>
                  <table>
                     <tr>
                     <td colspan="2" align="center" style="color:Blue;font-size:large">Edit Injury</td>
                     </tr>
                     <tr><br /></tr>
                     <tr>
                        <td align="right" ><strong>What event caused the injury?</strong></td>
                        <td align="left">
                           <asp:DropDownList ID="ddlcauseofinj" onchange="showifother('1');" runat="server" 
                           DataSourceID="SqlDataSource2" DataTextField="Description" 
                           DataValueField="ID" AppendDataBoundItems="True">
                              <asp:ListItem Selected="True" style="color:gray" Value="0">Causes of Injury</asp:ListItem>
                           </asp:DropDownList>
                        </td>
                     </tr>
                     <tr id="trother1"  style="display:none">
                        <td align ="right"><strong>If Other, Please Describe:</strong></td>
                        <td align="left">
                        <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>
                        </td>
                     </tr>
                     <tr>
                        <td align="right"><strong>What is the extent of the Injury?</strong></td>
                        <td align="left">
                           <asp:DropDownList ID="ddlextentofinj" runat="server" 
                           onchange="showifother('2');" AppendDataBoundItems ="true"  DataSourceID="SqlDataSource3" 
                           DataTextField="Description" DataValueField="ID">
                           <asp:ListItem Selected="True" style="color:gray" Value="0">Extent of the Injury</asp:ListItem>
                           </asp:DropDownList>
                        </td>
                     </tr>
                     <tr id="trother2"  style="display:none">
                        <td align="right"><strong>If Other, Please Describe:</strong></td>
                        <td align="left">
                           <asp:TextBox ID="TextBox4" runat="server" TextMode="MultiLine" ></asp:TextBox>
                        </td>
                     </tr>
                     <tr>
                        <td align="right"><strong>Type of Medical Treatment:</strong></td>
                        <td align ="left">
                           <asp:DropDownList ID="DropDownList3" AppendDataBoundItems ="true"  runat="server" 
                           DataSourceID="SqlDataSource4" DataTextField="Description" DataValueField="ID">
                           <asp:ListItem Selected="True" style="color:gray" Value="0">Medical Treatments</asp:ListItem>
                           </asp:DropDownList>
                        </td>
                     </tr>
                     <tr>
                        <td align="right"><strong>Treatment Provider:</strong></td>
                        <td align="left">
                           <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Injury_Desc")%>'></asp:TextBox>
                        </td>
                     </tr>
                     <tr>
                        <td colspan ="2" align="center"><asp:ImageButton ID="CancelButton" runat="server" ImageUrl="~/images/bttnCancel.gif" /></td>
                     </tr>
                  </table>
               </EditItemTemplate>
            </asp:FormView>
         </ContentTemplate>
      </asp:UpdatePanel>
   </asp:Panel>
   <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
   TargetControlID="bttnEdit" PopupControlID="Pnlmodal" 
   BackgroundCssClass="modalBackground" Drag="True" />
</ItemTemplate>

我只是将更新面板包裹在整个站点周围。 这种接缝通常可以解决问题。 您在网格视图中有更新面板的事实可能会弄乱面板的ID并导致它不更新。

  1. 只需在面板中包装gridview

  2. 尝试整个网站

我猜你在点击bttnEdit时遇到问题,并且没有导致你的UpdatePanel刷新,即使你有一个明确定义的触发器。

如果是这种情况,那么您可能会遇到一个问题,即您实际上没有为bttnEdit定义服务器端点击事件。 相反,你用javascript劫持了点击,并且可能使用它来提交你的表单,而不会传递到点击bttnEdit的服务器。

tl; dr:更改你的bttnEdit也可以进行服务器端点击,或者将你的updatepanel更改为总是更新(第二个是丑陋的黑客攻击)

谢谢你的所有答案! 我将整个面板移动到gridview和所有其他嵌套控件之外。 有效。 它正在找到控制ID的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM