好的,在这里打我的头。似乎有很多关于这个的讨论,但我认为我需要更详细地分解它。我想创建一个带有允许一些用户交互(复选框)的树视图的模式对话框,然后当用户在对话框上单击“确定”时在主页上设置一个字段。不完全确定如何做到这一点。
我可以通过单击按钮打开对话框,没问题。
标记:
<input id="buttonBuildSelect" runat="server" value="Build Select" type="submit" onserverclick="buttonBuildSelect_ServerClick" />
<div id="dialog" title="Expression Builder">
<p>
<asp:CheckBox ID="checkBoxOverwrite" runat="server" Text="Overwrite Existing Statement" /></p>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" Style="border: 1px solid black; overflow: auto;
height: 200px;">
<asp:Label ID="labelExpressionType" runat="server" Text=""></asp:Label>
<asp:TreeView ID="popupTreeView" runat="server" CssClass="treeview" ShowLines="true"
NodeStyle-CssClass="nodeStyle">
</asp:TreeView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<br />
</div>
脚本:
$(document).ready(function () {
$(function () {
$("input:submit").button();
$("input:submit").click(function () {
$("#dialog").dialog("open");
return false;
});
});
$(function () {
$("#dialog").dialog(
{
autoOpen: false,
modal: true,
width: 400,
height: 355,
resizable: false,
open: function () {
$(this).load("ExpressionBuilder.ascx");
},
options: { resizable: false },
buttons: { "OK": function () {
return false
},
Cancel: function () {
$(this).dialog("close")
}
}
}
)
});
});
但我不知道如何 1)单击按钮 2)从数据库加载树视图 3)打开对话框
我一直在研究两种方法,但都无法正常工作。
方法一:使用ajax。但是,我以什么格式返回数据以绑定到树视图以及如何从脚本绑定树视图。
方法二:将对话框的内容放在单独的用户控件中,然后设置对话框加载用户控件
采用哪种方法,然后需要一些帮助才能使该方法发挥作用...
谢谢
编辑
我正在构建一个查询生成器。用户从可用实体的下拉列表中选择实体。用户单击“构建选择语句”按钮。将出现一个对话框,其中包含选定实体的树视图作为实体中所有字段的父节点和子节点。用户检查他们希望包含在 select 语句中的每个字段,然后单击 OK。对话框关闭,“选择语句”文本框填充了格式化为实体数据源 ESQL 语句的选中字段(it.[field1]、it.[field2] 等...)
上面发布的代码打开了对话框,但没有内容(因为我没有绑定任何数据。我可以对数据进行硬编码,但我希望用户能够选择要使用的实体,这意味着数据源树视图的视图必须是动态的。现在,我无法让任何一种方法工作。没有错误,但也没有对话框(按钮单击什么都不做)。