我正在开发一个用户控件,它在jQuery Dialog中有一个asp.net按钮但是当我按下按钮没有任何反应意味着它没有调用服务器端的按钮点击事件,我试过了
dlg.parent().appendTo(jQuery("form:first"));
但它也没有帮助我,是否有可能在asp.net UserControl中实现这一点? 另外我想知道我是否可以在对话框中使用UpdatePanel?
答案 0 :(得分:3)
您可以将按钮设为对话框按钮,并在ID为HiddenButton的页面上放置一个asp.net按钮,并将其包装在样式为display:none;
的div中
因此按钮不可见。 (不得为Visible =“false”,以便呈现按钮)
在javascript对话框中添加一个具有单击隐藏按钮
效果的按钮 jQuery("#dialog").dialog({
buttons: {
'ButtonText': function() {
//save the session
__doPostBack('<%# HiddenButton.ClientID %>', '')
jQuery(this).dialog('close');
}
}
});
并将asp点击处理程序添加到隐藏按钮
<div style="display:none;">
<asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>
单击对话框按钮时,将触发服务器端上的Click事件
希望这有助于我一直使用这种模式
答案 1 :(得分:0)
我怀疑它可能与ASP.NET无法在表单中找到按钮有关。
在jQuery中使用.live事件设置 - 在使用.live创建对话框之前绑定事件,它应该可以工作......
你最终会在你的document.ready函数中找到类似的东西:
$("#btn").live("click", function(){
// Do something
});
$("#dialog").dialog({
...
}
答案 2 :(得分:0)
我有同样的问题。我最终从对话框中拉出按钮,用css隐藏它,然后从对话框上的关闭事件触发它(我将在以后更干净地执行它,但这确实说明了问题,至少)。