谁有在showModalDialog打开的窗口中使用treeview控件选择人员,并返回人员id和name给父窗口的例子?急用啊,谢谢!!!最好是JavaScript的

解决方案 »

  1.   

    http://tech.ddvip.com/2009-10/1256631676136782.html
      

  2.   

    str =window.showModalDialog("test.htm",,"dialogWidth=200px;dialogHeight=100px"); 
    str就等于test页面关闭后返回的returnValue了。test页面,在关闭窗口之前window.returnValue={"ID":1,"Name":"老3"};str.ID
    str.Name
      

  3.   

    例如Default.aspx有两控件,Button1是打开一个窗口,Text1是返回TreeView所选择节点的value
    <input id="Text1" type="text" />
    <input id="Button1" type="button" value="button" onclick="window.showModalDialog('child.aspx', document.getElementById('Text1'));"  />child.aspx页面
    ....
    <head runat="server">
        <title>无标题页</title>
        <base target="_self" />
    </head>
    ........
    <asp:TreeView ID="TreeView1" runat="server"  
                onselectednodechanged="TreeView1_SelectedNodeChanged">
    ......
    </asp:TreeView>在TreeView1的onselectednodechanged事件中
    C#代码:
    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
       string t=TreeView1.SelectedNode.Value.ToString();
       Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "window.dialogArguments.value = '"+t+"'; window.close();", true);
    }
    你选择TreeView某个节点后,关闭弹出窗口child.aspx,
    并在Default.aspx页面中的Text1里显示你选中节点的Value!!
      

  4.   

    4楼的koukoujiayi
     如果是多选怎么办呢?
      

  5.   

     function GetValue() {
               
                var strID = window.document.getElementById("Hd_id").value;
                var strName = window.document.getElementById("Hd_name").value;
                var strchecked = document.getElementById("checkedNodes").value;  
                var strcheckedName = document.getElementById("Hd_checkedNodesName").value;  ;
                var txt_b = window.opener.document.getElementById("" + strName + "");
                var txt_id = window.opener.document.getElementById("" + strID + "");
                if (strcheckedName != "") {
                        txt_b.value = strcheckedName.replace(",", "").replace(" ", ""); 
                        txt_id.value = strchecked.replace(",", "").replace(" ", ""); 
                    }
                    else {
                        txt_b.value = strcheckedName;
                        txt_id.value = strchecked; 
                    }
                }
                window.close();
            }
      private void GetChildTree(TreeNode node)
            {
                foreach (TreeNode nd in node.ChildNodes)
                {
                    if (nd.Checked)
                    {
                    }
                    if(nd.ChildNodes.Count >0)
                        GetChildTree(nd);
                }
            }
      

  6.   

    如t1,t2,t3是多选值
    则t=t1+","+t2+","+t3;
    同样执行以下与句,
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "window.dialogArguments.value = '"+t+"'; window.close();", true); 
    在主页面如果要分开的话可以通过split(",")来分别获取!!
      

  7.   

    调用window.close()出现的确认窗口能不出现吗?
      

  8.   

    不会有的吧!!
    以下的代码有了吗??
    <base target="_self" />