2011-10-11 85 views
0

我面临的一个愚蠢的问题,而是努力奋斗,以解决..jQuery UI的模态对话框的问题

我有更新面板复选框控件..

<asp:UpdatePanel ID="UpdateCheckEdit" runat="server"><ContentTemplate> 
<asp:CheckBox ID="ChkEdit" Text="Edit" Enabled="true" onCheckedChanged="ChkEdit_CheckedChanged" Visible="false" AutoPostBack="true" runat="server" /> 
    <asp:TextBox ID="txtDbInterviewComments" CssClass="user_textarea" TextMode="MultiLine" Visible="false" runat="server" /> 
    <asp:Button ID="btnEdit" Visible="false" CssClass="create_btn" OnClientClick="javascript: $('#ConfirmDiv').dialog('open');return false;" OnClick="btnEdit_Click" Text="Edit" runat="server" /> 
</ContentTemplate></asp:UpdatePanel> 

在检查的变化文本框和编辑按钮均可见,一旦编辑按钮被打了一个模式对话框弹出要求确认和盒子的股利如下..

<div id="ConfirmDiv" title="Confirm"> 
<p><span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>Do you want to save the changes?<br />These changes CANT be reversed.</p> 
</div> 

的脚本Jquery的被写成

<script type="text/javascript"> 
     $().ready(function() { 
      $("#ConfirmDiv").dialog(
      { autoOpen: false, 
       modal: true, 
       bgiframe: true, 
       resizable: false, 
       height: 'auto', 
       open: function (event, ui) { jQuery('.ui-dialog-titlebar-close').hide();}, 
       buttons: {'Yes': function() { <%=this.Page.ClientScript.GetPostBackEventReference(new PostBackOptions(this.btnEdit))%>; },'Cancel': function() { $(this).dialog('close'); }} 
      }) 
     }); 

    </script> 

这个脚本是写在BODY标签和Yes按钮点击调用编辑按钮(btnEdit)

在一切背后的代码的后背部的事件运行良好,但执行后模态框仍然显示出来。我需要在代码执行后关闭此对话框..

如果我删除更新面板,一切工作都很好,但网格视图中存在一个HTML单选按钮列,如果它丢失回来后发生..

请帮我出可行的解决方案..

回答

1

你将面临的主要问题是对的document.ready一个局部回传没有被解雇。要解决这个问题,你可以在一个叫做PageLoad的javascript函数中更新你的jquery对象。我相信它是区分大小写的。

+0

我不理解如何格式化这个评论看看是否正确:(对不起,如果它看起来不好.. 我写了Javascript的页面加载使用字符串生成器,sb。在按钮单击事件中调用它如下,现在弹出本身不显示....... if(!ClientScript.IsStartupScriptRegistered(“JSScript”)) ScriptManager.RegisterStartupScript(btnEdit,this.GetType(),“JSCR”,sb.ToString( ),false); –

+0

对不起,如果我没有清楚。pageLoad函数实际上是一个JavaScript函数,asp.net ajax在部分回发上触发(这是自动连接的,所以您只需定义函数并将代码放入它在$()。ready({...})中的代码应该被移到函数pageLoad(){...}。 uld不需要在代码隐藏中加载JavaScript。 –

0

看到更新面板会清除页面内的所有jQuery代码。尝试使用PageRequestManager