JQuery对话框打开并折叠
本文关键字:折叠 对话框 JQuery | 更新日期: 2024-07-27 15:21:57
我编写的这段代码是在一个更大的解决方案中实现的。重点是在asp:GridView中添加一个asp:ImageButton。单击此图像按钮将触发对JQuery对话框的javascript调用。
此对话框绑定到一个包含asp:BulletedList的div。
很简单,我让它工作了,但当我点击按钮,对话框打开时,它只显示为标题栏。我可以调整窗口大小并展开窗口以显示内容,但我希望它从一开始就打开到合适的大小。
将Resizable选项设置为false只会在折叠模式下阻止它,我再也看不到数据了。此外,在IE中从渲染页面打开源代码时,当对话框折叠到标题栏时,会显示一个空的div(对话框使用的div),但在我展开窗口并显示我的BulletedList数据后,右键单击项目符号列表显示源代码仍然显示一个空白div。…
这是代码,gridview要大得多,并且使用了项模板,因为每列都有特定的页眉和页脚,但我去掉了所有不相关的东西。
.ascx文件
Javascript:
function ShowReferedTasks() {
$('#litReferedTasks').dialog({
autoOpen: true,
modal: true,
minHeight: 150,
minWidth: 500,
resizable: true
});
}
包含触发对话框的按钮的网格视图:
<ext:GridView ID="gvTaskParameters" runat="server" AutoGenerateColumns="False" DataKeyNames="TaskParameterID"
ShowFooter="<%# _isAdmin %>" ShowHeaderWhenEmpty="True" ShowFooterWhenEmpty="True"
EmptyDataText="Aucun paramètre disponible" AllowPaging="True"
PagerSettings-Mode="NextPreviousFirstLast"
OnPageIndexChanging="gvTaskParameters_PageIndexChanging" OnRowCancelingEdit="gvTaskParameters_RowCancelingEdit"
OnRowEditing="gvTaskParameters_RowEditing" OnRowDeleting="gvTaskParameters_RowDeleting"
OnRowUpdating="gvTaskParameters_RowUpdating" OnRowCommand="gvTaskParameters_RowCommand"
OnRowDataBound="gvTaskParameters_RowDataBound"
OnDataBound="gvTaskParameters_DataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ibViewTasks" runat="server" CausesValidation="False" CommandName="ViewTasks"
ImageAlign="Middle" ImageUrl="../../js/jquery-ui-1.8.19.custom/development-bundle/demos/images/icon-docs-info.gif" AlternateText="<%$ resources:resource, images_VoirTaches %>"
CommandArgument='<%# Eval("TaskParameterID") %>' />
<%--<input id="ibViewTasks" class="ui-state-default ui-corner-all" type="image" src="../../js/jquery-ui-1.8.19.custom/development-bundle/demos/images/icon-docks-info.gif" value="button" />--%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</ext:GridView>
绑定到对话框的div:
<div id="litReferedTasks" class="" title="Tâches Référées" style="background-color: White; position: absolute;">
<div style="padding-left: 25px; padding-bottom: 25px; padding-right: 25px;">
<asp:BulletedList ID="blReferedTasks" runat="server" DisplayMode="Text">
</asp:BulletedList>
</div>
</div>
C#中的代码隐藏:
else if (e.CommandName == "ViewTasks")
{
TaskParameterMapManager mgr = new TaskParameterMapManager(DatabaseConnection);
int id = Convert.ToInt32(e.CommandArgument.ToString());
var ts = mgr.GetTasks(id).OrderBy(t => t.TaskDescription);
this.blReferedTasks.DataSource = ts.ToList();
this.blReferedTasks.DataTextField = "TaskDescription";
this.blReferedTasks.DataBind();
ScriptManager.RegisterStartupScript(this, this.GetType(), "Key_ShowReferedTasks", "ShowReferedTasks();", true);
}
正如@chris所建议的,答案是删除对话框使用的div中的"position:absolute"样式标记。