0

我有 ASCX 控件,它基本上只包含一个 DIV,里面有几个 ASP 按钮。我的母版页包含一个 ASP.NET 表单,我想在按下上述按钮之一时进行回发。默认情况下,此 DIV 是不可见的,并且变为可见以用作对话框,由 JQuery 插件 BlockUI 处理。因此,在某些时候用户会看到这个 DIV,我希望在用户单击按钮时进行回发。

我的问题是:ASCX 通过指令附加到 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 本身。

4

3 回答 3

2

jQuery UI 对话框将自己移动到正文的末尾,在表单之外。诀窍是在打开对话框时将对话框 div 移回窗体中。

例子

请参阅https://stackoverflow.com/a/1140541/26226http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html

于 2012-08-16T15:21:26.163 回答
0

在您希望加载 .ashx 的地方尝试这样的操作:

<div>
     <uc2:uscMsgBox ID="yourId" runat="server"></uc2:uscMsgBox>
</div>
于 2012-08-16T15:09:16.420 回答
0

这实际上很容易,只需调用将 DIV 移动到另一个位置的 Jquery 方法 appendTo()。http://api.jquery.com/appendTo/

于 2012-08-16T15:15:51.160 回答