我有ASCX控件,它基本上只包含一个内置几个ASP按钮的DIV。我的母版页包含一个ASP.NET表单,我想在按下上述按钮之一时引发回发。默认情况下,此DIV是不可见的,并且可用作对话框,由JQuery插件BlockUI处理。所以,在某些时候用户会看到这个DIV,我希望当用户点击按钮时发生回发。
我的问题是:ASCX通过direcitve附加到MasterPage:
(file MasterPage begins:)
<%@ Master Language="C#" Inherits="GIUMasterPage" CodeBehind="MasterPage.master.cs"
AutoEventWireup="True" %>
<%@ Register Src="uscMsgBox.ascx" TagName="uscMsgBox" TagPrefix="uc2" %>
(HTML head, body form opening tags are below).
对页面的检查表明,其DIV出现在表单标记之外的结果HTML代码的末尾。结果,当它可见并按下按钮时,没有发生回发。我进一步,附加按钮的onClientClick属性javascript调用__doPostBack函数。回发开始发生,但没有调用按钮的处理程序。
我确信如果ASCX的DIV代码出现在表单HTML标记内,则回发将正确发生。
所以,我的问题是,我如何命令将ASPX的DIV内容放在FORM标签中,而不是在页面末尾,通过某些指令?我可以改变MasterPage和ASPX本身。
答案 0 :(得分:2)
jQuery UI对话框将自身移动到表单外部的正文末尾。诀窍是当你打开它时将对话框div移回窗体内。
请参阅https://stackoverflow.com/a/1140541/26226和http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html。
答案 1 :(得分:0)
尝试使用您希望加载.ashx的内容:
<div>
<uc2:uscMsgBox ID="yourId" runat="server"></uc2:uscMsgBox>
</div>
答案 2 :(得分:0)
实际上很简单,只需调用Jquery方法appendTo()就可以将DIV移动到另一个地方。 http://api.jquery.com/appendTo/