我在以下情况下花费了将近3个小时:
>我想从JavaScript触发AsyncPostBack,但也能够发送相同的参数,因为我需要在服务器端使用它.
我已经尝试了很多情况,但是找不到清晰的示例.
我有一个更新面板,当我按下其中的特定图像按钮时,会显示一些弹出窗口. (弹出窗口最初是隐藏的,当请求完成时,display:none被删除=>看起来很好)
function BeginRequestHandler(sender, args) {
}
function EndRequestHandler(sender, args) {
document.getElementById('popup').style.display = '';
document.getElementById('overlay').style.display = '';
}
好吧,问题在于我需要制作一个js函数来执行asyncPostBack,因为在单击该控件的某些部分时会从Flash控件中调用此js函数,因此我想模拟对图像的单击. (因为单击该弹出窗口,如您在上面看到的那样显示)
问题是我找不到任何这样的例子.此js函数将接收一个参数,因此当我执行回发时,我希望能够在服务器端获取该参数. (此参数似乎是主要问题=-在执行回发时如何将其发送到服务器?).
抱歉,如果我不太清楚,但是您能给我一些有关此示例的文档吗?
非常感谢!
更新:
请注意,我已经完成的第一种情况是在UpdatePanel中使用ImageButton:
<asp:ImageButton ID="lnkDetails" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "logo") %>'
AlternateText='<%# DataBinder.Eval(Container.DataItem, "Name") %>' OnCommand="lnkDetails_Command"
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "TenantID") %>' Text="Click">
</asp:ImageButton></li>
我只需要使用JavaScript来“模拟”此点击,以使异步回发(因为当我从Flash调用时,Flash控制会调用我的js方法进行回发)
解决方法:
这应该工作得很好:
<asp:ImageButton ID="ImageButton1" runat="server" OnClientClick='return doSomething(<%#Eval("SomeValue")%>);' />
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function () {
doSomething = function(argument){
__doPostBack("<%=ImageButton1.ClientID%>", argument);
return true; //don't kNow if you need this
}
});
编辑:检查您的ScriptManager并确保将EnablePartialRendering设置为true.
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" ... />
在后面的代码中:
protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
//call the RaisePostBack event
base.RaisePostBackEvent(source, eventArgument);
if (source == ImageButton1)
{
string arg = eventArgument;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。