我在使用javascript(jQuery)更新ASP:UpdatePanel时遇到问题。这是我的。ASP.NET:使用jQuery手动更新UpdatePanel
我正在使用隐藏的按钮技巧,因为我似乎无法获得__doPostBack技巧的更新面板的ClientID)。
<asp:UpdatePanel runat="server" ID="pnlUpdate">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnUpdate" />
</Triggers>
<ContentTemplate>
<asp:UpdateProgress runat="server" AssociatedUpdatePanelID="pnlUpdate" DynamicLayout="false" DisplayAfter="100">
<ProgressTemplate>
<img alt="Laddar..." src="img/loader.gif" width="16" height="11"/>
</ProgressTemplate>
</asp:UpdateProgress>
<div style="display:none;">
<asp:Button runat="server" ID="btnUpdate" CommandName="Refresh" CommandArgument='<%# Eval("Id") %>'/>
</div>
<asp:Repeater runat="server" Id="rptrEnquiry">
...
</asp:Repeater>
<%= DateTime.Now.ToString() %>
<a href="javascript:jQuery('#<%= btnUpdate.ClientID %>').trigger('click')&&undefined;">Fire!</a>
</ContentTemplate>
</asp:UpdatePanel>
在处理该btnUpdate(在GridView RowCommand)的rptrEnquiry是反弹压btnUpdate当代码隐藏。
如果我直接按按钮(而不是隐藏的)一切完美(updateprogess显示和更新的日期和中继器更新。
但如果我点击消防链接,通过JavaScript触发按钮只有日期是更新,但是的UpdateProgress没有显示和转发不反弹。虽然我调试可以看到,反弹代码被执行,但它的效果是不是在更新。
我试过这种方法,但我有一个gridview中的updatepanel,这给了我“编译错误:pnlUpdate不在当前上下文”当试图获得ClientID – 2009-09-22 15:03:53
有点奇怪,updatepanel是唯一的控件,我在gridview中,我可以'在当前的情况下找到? – 2009-09-22 15:11:51
您必须将__doPostBack()锚标记放入与UpdatePanel相同的GridView模板中,才能看到pnlUpdate。 – jrummell 2009-09-22 15:46:56