积极答复者
Dialog 弹出 Div 引发的问题

问题
-
<form ID ="form"> <div id="dialog_div" style="display:none;" > <asp:Button ID="btn" runat="server" Text="确定" OnClientClick= "Get()"/> </div> </form>
function Get() { $("#dialog_div").css("display","block"); $('#dialog_div).dialog({ title: '', width: 720, height: 620, modal: true, position: ['center', 100]}); }
当我弹出Dialog的时候发现Button的服务器事件不触发。找了两个解决方案但是都有后续引发的问题。
第一种是把dialog后Div移回Form
$('#dialog_div').parent().appendTo('#form);
这样以后服务器事件就能响应了但是响应后Dialog会立刻被关闭。我在后台又重新弹出可是效果不好,有没有办法保持住呀?
第二种是用AjaxPor.2
[AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)] public string Set() { return "aaaaa"; }
function Get() { alert(WebClient.Default.Set().value); }
服务端能响应Set()但是无法获取到页面控件,提示控件未被实例化。虽然可以在Load的时把页面的控件赋给后台,但是那也只是初始状态的时候。我需要的是一个时时获取页面控件状态的。
AjaxPro.AjaxMethod 貌似对HTTP请求进行了拦截,并不会按asp.net页面生命周期顺序执行,所以服务端在Set()内获得控件是NULL
答案
-
这个问题的关键是你现在使用 Ajax,但是 button 控件生成的是提交按钮,导致页面整体刷新。
你可以参考一下我的这两篇文章:
冠军
- 已标记为答案 BU XI - MSFTModerator 2012年6月25日 5:09
-
我也遇到你这样的问题,想把弹出对话框的内容直接提交到后台似乎很麻烦,都是用的AJAX提交,比较搞笑的是,JS也获不到值,原因是 <div id="dialog_div" style="display:none;" >
<asp:Button ID="btn" runat="server" Text="确定" OnClientClick= "Get()"/>
</div>
代码还在原来的位置,Dialog里复制了一份,页面中会出现两个BTN,我是用全局变量把内容保存起来,然后移到Dialog里,确定后再把全局变量返回到隐藏DIV中去- 已标记为答案 BU XI - MSFTModerator 2012年6月25日 5:09
全部回复
-
这个问题的关键是你现在使用 Ajax,但是 button 控件生成的是提交按钮,导致页面整体刷新。
你可以参考一下我的这两篇文章:
冠军
- 已标记为答案 BU XI - MSFTModerator 2012年6月25日 5:09
-
我也遇到你这样的问题,想把弹出对话框的内容直接提交到后台似乎很麻烦,都是用的AJAX提交,比较搞笑的是,JS也获不到值,原因是 <div id="dialog_div" style="display:none;" >
<asp:Button ID="btn" runat="server" Text="确定" OnClientClick= "Get()"/>
</div>
代码还在原来的位置,Dialog里复制了一份,页面中会出现两个BTN,我是用全局变量把内容保存起来,然后移到Dialog里,确定后再把全局变量返回到隐藏DIV中去- 已标记为答案 BU XI - MSFTModerator 2012年6月25日 5:09