实现: 使用window.showModalDialog弹出子页面,设置页面返回值window.returnValue。
父页面中只有一个text, 部分代码如下:
说明: 在父页面上加个readonly的text,onclick事件中使用window.showModalDialog弹出子页面,使用contactName保存子页面返回值。
---------------------------------------------------------------------------------------------------------------------------------------------------------
子页面上有一个显示当前选中联系人的asp:Label, 两个button(确定、取消)和一个显示联系人的树(分组),如下图:
页面对应代码如下:
该页面中用到的js如下:
说明:
closewindow ->关闭当前页面;
submitname ->如果选择了联系人,则设置该页面返回值,并关闭当前页面;
getTreeNode ->获得当前click的node,设置选中节点颜色为选中颜色,如果之前选中了其他节点,则恢复之前选中节点的颜色为未选中的颜色;同时设置lblUser显示选中的联系人。
子页面在页面加载时,需要加载联系人树,后台代码如下:
public partial class ChildPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { TreeViewContactList.Attributes.Add("onclick", "javascript:return getTreeNode();"); string[] groups = {"朋友", "同学" }; List friends = new List(); friends.Add(new Person("朋友A","Peter")); friends.Add(new Person("朋友B", "John")); friends.Add(new Person("朋友C", "Clare")); List classmates = new List(); classmates.Add(new Person("同学1", "Lili")); classmates.Add(new Person("同学2", "Bob")); classmates.Add(new Person("同学3", "Steve")); Dictionary
说明:
需要设置TreeView的onclick属性 TreeViewContactList.Attributes.Add("onclick", "javascript:return getTreeNode();"); 这样点击treeview就不会刷新了,而且可在js中设置中选颜色变化及当前选中联系人;
node.Text为页面上节点的显示内容,对应节点的value可以存在NavigateUrl中,但是要加"#",否则点击会打开新页面。 ---------------------------------------------------------------------------------------------------------------------------------------------------------
效果:
最新评论