ASCX控件:如何在(主)页面的预定义部分中呈现它?

时间:2012-08-16 15:06:05

标签: jquery asp.net postback ascx jquery-blockui

我有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本身。

3 个答案:

答案 0 :(得分:2)

jQuery UI对话框将自身移动到表单外部的正文末尾。诀窍是当你打开它时将对话框div移回窗体内。

example

请参阅https://stackoverflow.com/a/1140541/26226http://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/