导致由服务器端按钮(ASP.Net按钮)触发的PostBack和调用事件

时间:2010-04-13 20:36:05

标签: asp.net jquery postback addressing

我有另一个奇怪的需要。我有一个带有动态按钮的jQuery对话框(

我的按钮将被“解雇”:

<asp:Button ID="RenewSubscriptionButton" runat="server" Visible="false" />

我的隐藏输入与回发val:

<input type="hidden" id="RenewSubscriptionPostBackValue" runat="server" />

在我的page_load中:

Me.RenewSubscriptionPostBackValue.Value = _
       Me.Parent.Page.ClientScript.GetPostBackEventReference _
      (Me.RenewSubscriptionButton, String.Empty)

AddHandler Me.RenewSubscriptionButton.Click, AddressOf RenewSubscription

在我的Asp.net控件中,我有一个被调用的js函数,并评估生成的__doPostBack:

$('#mgrSubPanel').dialog('destroy');
// cause postback and have it run the workflow...
eval($("#<%= RenewSubscriptionPostBackValue.ClientID %>").val());

它会导致回发,但不会调用我的代码后面的函数RenewSubscription。不确定地址是否失败,或者你们中的哪一个可以看到我的错误并纠正我......

提前致谢...

2 个答案:

答案 0 :(得分:0)

将此PostBackEventReference脚本添加到简单的“onlick”时会发生什么?这通常是我如何使用它...你的语法在这里让我神秘了一分钟。 :| (虽然我不习惯jQuery)

另外,当你说“动态按钮”时,你究竟是什么意思?

答案 1 :(得分:0)

只需通过jQuery单击按钮即可简化代码,如下所示:

$('#mgrSubPanel').dialog('destroy');
$("#<%=RenewSubscriptionButton.ClientID %>").click();

这就好像用户直接点击了按钮,不需要额外的<input>GetPostBackEventReference代码,只需保留按钮本身的处理程序(AddHandler Me...)和你已经准备好了。