UpdatePanel not updating
For whatever reason - my update panel is not updating. Now please note that this is all inside the item template of a template field inside of a gridview. Major Nesting. Help me,Please
<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);" />
<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"
开发者_JAVA技巧 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>
I just wrap the update panel around the whole site. This seams to usually do the trick. The fact you have an update panel in a grid view probably messes up the id of the panel and causes it not to update.
just wrap the gridview in the panel
try the whole site
I'm guessing you're having problems with bttnEdit being clicked and not causing your UpdatePanel to refresh, even tho you have an explicitly defined trigger.
If that's the case, you're problem could be revolving around the fact that you do not actually have a server side click event defined for bttnEdit. Instead, you hijack the click with javascript, and probably use that to submit your form without ever passing to the server that bttnEdit was clicked.
tl;dr: Change your bttnEdit to also do a server side click, or change your updatepanel to always update (the second one is an ugly hack)
Thanks for all of your answers! I moved the entire panel outside of the gridview and all the other nested controls. It worked. It was having issues finding Control Id's.
精彩评论