您好我已经看到了很多类似的问题,但所有问题都已通过将对话框添加回页面的主窗体来解决。这不能解决以下问题:
在我的Aspx文件中,我已经定义了一段代码如下:
<asp:UpdatePanel runat="server" ID="RadAjaxPanel2" UpdateMode="always">
<ContentTemplate>
<div id="areaFilterDialog" runat="server">
</div>
</ContentTemplate>
</asp:UpdatePanel>
我已经有了以下javascript / jquery来初始化对话框
$("#areaFilterDialog").dialog({
bgiframe: true,
autoOpen: false,
resizable: false,
modal: true,
draggable: true,
closeOnEscape: true,
width: 630,
open: function (type, data) {
dialogOpen = true;
$(this).parent().appendTo("form");
}
});
});
将对话框的元素附加到父页面上的表单。
在.cs文件中,我按如下方式向元素添加内容:
var departmentCode = e.DepartmentCode;
var summaryType = e.SummaryType;
var summaryCode = e.SummaryCode;
var totalName = e.TotalName;
var view = this.TemplateControl.LoadControl(".\\WebControls\\FilteredAreaRadGrid.ascx") as FilteredAreaRadGrid;
using (var businessManager = new BusinessManager(new DALConnection(this.DalConnectionString)))
{
view.DataSource = businessManager.GetData(departmentCode, summaryType, summaryCode, string.Empty);
this.AreaFilterDialog.Controls.Add(view);
}
我通过使用ScriptManager注册以下启动脚本来制作JQuery UI对话框:
var script = string.Format("ShowAttendanceFilterPopup('{0}');", totalName);
ScriptManager.RegisterStartupScript(
this.Page,
this.Page.GetType(),
"tmp",
string.Format("<script type='text/javascript'>{0}</script>", script),
false);
调用以下javascript / jquery:
function ShowAttendanceFilterPopup(summaryName) {
$("#areaFilterDialog").data('title.dialog', summaryName);
$('#areaFilterDialog').dialog("open");
$('#areaFilterDialog').dialog("enable");
}
问题是应该附加到对话框的html实际上只是附加到页面顶部,并且根本不显示对话框。如果我不在显示之前向对话框添加控件,则对话框会正确显示。
我已尝试使用我目前添加的内容,即包含Telerik RadGrid的UserControl,但也使用标准的asp按钮,两者都具有相同的行为。
任何人对我正在做的不正确甚至更好的事情有任何想法,这个问题的解决方案?
非常感谢,
罗布
答案 0 :(得分:1)
也许试试:
<div id="areaFilterDialog">
<asp:UpdatePanel runat="server" ID="RadAjaxPanel2" UpdateMode="always">
<ContentTemplate></ContentTemplate>
</asp:UpdatePanel>
</div>
我没有使用Telerik Ajax面板,但我猜的是:
using (var businessManager = new BusinessManager(new DALConnection(this.DalConnectionString)))
{
view.DataSource = businessManager.GetData(departmentCode, summaryType, summaryCode, string.Empty);
RadAjaxPanel2.Controls.Add(view);
}
将div放在AjaxPanel ContentTemplate中并将视图Control添加到它对我来说似乎不对。