欢迎光临
我们一直在努力

JQueryEasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法

对应的弹出层内容如下所示:

        <div id="dd" title="处理流程" icon="icon-save" style="overflow:auto;padding:10px;">
        
<table width="100%" cellpadding="0" cellspacing="1" border="0" id="Table1">
            
<tr>
                
<td >
                    
<asp:DataGrid ID="dg" runat="server" Width="100%" CssClass="dg" AutoGenerateColumns="False"
                PageSize
="20" AllowSorting="True" DataKeyField="ID" Height="0px" OnItemDataBound="dg_ItemDataBound">
                
<EditItemStyle CssClass="EditItem"></EditItemStyle>
                
<AlternatingItemStyle CssClass="AlternatingItem"></AlternatingItemStyle>
                
<ItemStyle CssClass="Item"></ItemStyle>
                
<HeaderStyle CssClass="Header"></HeaderStyle>
                
<FooterStyle CssClass="Footer"></FooterStyle>
                
<Columns>
                    
<asp:templatecolumn HeaderText="ID" Visible="false">
                        
<ItemTemplate>
                            
<asp:Label ID="lblId" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.id") %>'></asp:Label>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:TemplateColumn HeaderText="序号">
                        
<ItemTemplate>
                            
<asp:Label ID="lblOrderbyId" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.OrderbyId") %>'></asp:Label>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:TemplateColumn HeaderText="处理类型">
                        
<ItemTemplate>
                            
<asp:Label ID="lblproctype" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.proctype") %>'></asp:Label>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:TemplateColumn HeaderText="流程名称">
                        
<ItemTemplate>
                            
<asp:Label ID="lblflowname" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.flowname") %>'></asp:Label>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:TemplateColumn HeaderText="流程处理人">
                        
<ItemTemplate>
                            
<asp:Label ID="lblproc_user" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.procuser") %>'></asp:Label>
                            
<asp:DropDownList ID="ddlproc_user" runat="server" Visible="false" />
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:TemplateColumn HeaderText="流程步骤描述">
                        
<ItemTemplate>
                            
<asp:Label ID="lblmayaddflow" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.flownote") %>'></asp:Label>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                
</Columns>
            
</asp:DataGrid>
                
</td>
            
</tr>
        
</table>
                    
        
<table class="formitem_pagestyle" cellspacing="0" cellpadding="0" border="0" style="width: 100%;
            border-collapse: collapse;"
>
            
<tr>
                
<td class="pagebutton" align="right" style="height: 30px; width: 100%;">
                    
<asp:ImageButton ID="imgbtnOK" runat="server" ImageUrl="~/Themes/Default/btn_savetobox.gif"
                        OnClick
="imgbtnOK_Click" />&nbsp;
                    
<img src="http://www.cnblogs.com/Themes/Default/btn_close.gif" border="0" onclick="close1()"/>
                
</td>
            
</tr>
        
</table>
        
</div>  
        
<br /><br />
        
<div align="center">   
            
<img src="http://www.cnblogs.com/Themes/Default/btn_savetobox.gif" border="0" onclick="open1()"/>
            
<asp:ImageButton ID="imgbtnBack" runat="server" ImageUrl="~/Themes/Default/btn_back.gif"
                        CausesValidation
="false" OnClick="imgbtnBack_Click" />

         </div>   

  

搜索相关问题发现,其中主要问题是出在:JQuery会把Dialog的元素append到Body里面,而不是form里面。研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部、form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内。也就是说,原先在form内的表单在Dialog初始化后就被移到form外了,这就导致了Dialog模板内表单全部失效。

解决方法是增加一行代码即可:dlg.parent().appendTo(jQuery("form:first")); 

也就是修改开始部分创建对话框的脚本即可:

 

 另外你也可以通过这种方法来处理该问题:

 

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《JQueryEasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法》
文章链接:https://www.456zj.com/5796.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址