我有两个页面Message.aspx和UserSelect.aspx页面.
我想把UserSelect页面中的listbox控件中的人员信息,传到Message页面中的textbox中.不知道怎么弄了...我的js代码如下(有错误,但不知道如何改了..):
    //Message页面,经过button弹出UserSelect人员选择窗口
  <script type="text/javascript">
        function openChild() 
        {
            var k = window.showModalDialog ("../UserSelect.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px");
        } 
    </script>          //UserSelect页面,将值传到textbox控件上.
        <script language="javascript" type="text/javascript">
                var k = window.dialogArguments;          
                function setFather() {
                    
                }
        </script>帮看看,k.document.getElementById("lstSjr").value = document.getElementById("txtSxr").value 这句话我问题,应该怎么改?

解决方案 »

  1.   

    document.getElementById("txtSxr").value = k
      

  2.   

     //UserSelect页面
    function ReturnShow(str)
    {       
       window.opener = null;
       returnValue = str;
       window.close();
    }
      

  3.   

      //Message页面,经过button弹出UserSelect人员选择窗口 
      <script type="text/javascript"> 
            function openChild() 
            { 
                var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px"); 
                document.getElementById("txtSxr").value  = k;
            } 
        </script>     //UserSelect页面,在你的关闭的按钮事件里加上
            <script language="javascript" type="text/javascript"> 
                           
                    function onclose() { 
                        window.returnValue = k.document.getElementById("lstSjr").value;
                        window.close();
                    } 
            </script> 
      
      

  4.   

    你用showModalDialog的话.UserSelect.aspx 里把选择的值放在window.returnValue里.回传给open的页面
      

  5.   

    document.getElementById("txtSxr").value=k.document.getElementById("lstSjr").value;你写反了
      

  6.   

    //Message页面,经过button弹出UserSelect人员选择窗口 
      <script type="text/javascript"> 
            function openChild() 
            { 
                var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px"); 
                document.getElementById("txtSxr").value  = k; 
            } 
        </script>    //UserSelect页面,在你的关闭的按钮事件里加上 
            <script language="javascript" type="text/javascript"> 
                          
                    function closewindow() { 
                        window.returnValue = k.document.getElementById("lstSjr").value; 
                        window.close(); 
                    } 
    yourbutton.onclick = closewindow;
            </script> 
    这个不可能不成功,lz拿这个试了么?
      

  7.   

    还有一种办法就是用session
    在UserSelect.cs中用session(text1)=TextBox1.text
    然后在Message.cs中取值
      

  8.   

    我试了,
    //UserSelect页面,在你的关闭的按钮事件里加上 
            <script language="javascript" type="text/javascript"> 
                          
                    function closewindow() { 
                         
                        window.close(); 
                    } 
    yourbutton.onclick = closewindow; 
            </script> 
    提示我K没有定义,K是在Message页面中定义的,在这里不定义行吗?
    我把K去掉,window.returnValue = document.getElementById("lstSjr").value;换成这句话,我调试的时候,发现没有取到值..window.close();我句话,不就是关闭窗口吗?怎么不管用呢?
      

  9.   

    同志们,listBox的值能直接传给textBox吗?
      

  10.   

    Session Cookie QueryString 就沒一個適合非要js? 那就不要show個對話框,block個Div就好了嘛。
      

  11.   

    //Message页面,经过button弹出UserSelect人员选择窗口 
      <script type="text/javascript"> 
            function openChild() 
            { 
                var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px"); 
                document.getElementById("txtSxr").value  = k; 
            } 
        </script>    //UserSelect页面,在你的关闭的按钮事件里加上 
            <script language="javascript" type="text/javascript"> 
                          
                    function closewindow() { 
                       var lstsjrlist = document.all["lstsjr"];
                       var retValue = "";
                       for(int i = 0; i< lstsjrlist.length;i ++)
    {
    retValue += listsjrlist[i].value;
    }
                        window.returnValue = retValue; 
                        window.close(); 
                    } 
    yourbutton.onclick = closewindow; 
            </script> 不好意思,前面那个是抄袭的你的,我现在改了下,红色标记的地方,不记得是document还是window了。你都看下
    然后跟踪下document.getElementById("lstSjr").value 和retValue,看哪个有值
    就用alert显示出来就可以了。
      

  12.   

    如果你是checkboxlist
    你到生成的html代码里看下它的所有checkbox的id是有什么规律,我记得用all可以获取的,或者是名称后面加上了$再加上一个序号?如果是这个,那段轮询获取值的代码你就改下,用一个循环先构造这个id,然后getelementbyid,再取value。
    呵呵,好几年没弄js了,有些东西只要一些印象了。
      

  13.   

    你是listbox?其实不管是什么你查看最后生成的html是什么样子,然后用js肯定能获取它的元素的,取出来就可以了。
      

  14.   

    真的非常感谢tmxk2002 的回复,js还是没有成功啊,我就用Session弄了实在受不了啦哈哈.这段代码我用了,不过for(int i = 0; i < lstsjrlist.length;i ++) 有问题,js里能直接用for吗,这个我不是很清楚啊.
    我一直感觉,我的这个问题用js肯定能解决,但小弟js水平实在有限啊,一直不知道错在哪里.        function openChild() 
            { 
                var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px"); 
                document.getElementById("txtSxr").value  = k; 
            }         function onclose() 
            { 
            var s = document.getElementById("lstSjr").value; 
            window.returnValue=s; 
            window.close(); 
            } 
    我就发现红色标的地放就没有取到值,一直很郁闷啊.
      

  15.   

    你拿  document.getElementById("lstSjr").value 付給 document.getElementById("txtSxr").value  ??!! 22樓的代碼思路是正確的,只是有點筆誤,把for里的int去掉或換成var js是弱類型的沒有int char這種東西,還有lstsjrlist 在for里寫成了 listsjrlist[i].value ,改過來就能執行了。  上論壇是要個邏輯不是代碼,至少不能要完整代碼。
      

  16.   

      Message.aspx页面 
    <script type="text/javascript"> 
            function openChild() 
            { 
                var k = window.showModalDialog ("../test2.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px"); 
            } 
        </script>         <asp:ListBox ID="lstSjr" runat="server">
                <asp:ListItem Selected="True" Value="abc"></asp:ListItem>
            </asp:ListBox>UserSelect.aspx页面.(这里需要注意的是要把script的语句放到 txtSxr 后面
    <input id="txtSxr" type="text" />
                <script language="javascript" type="text/javascript"> 
                    var k = window.dialogArguments;  
                    document.getElementById("txtSxr").value = k.document.getElementById("lstSjr").value;   
            </script> 
      

  17.   

      
    小地方修改后:
    UserSelect.aspx页面<script type="text/javascript"> 
            function openChild() 
            { 
                var k = window.showModalDialog ("../Message.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px"); 
            } 
        </script>         <asp:ListBox ID="lstSjr" runat="server"> 
                <asp:ListItem Selected="True" Value="abc"> </asp:ListItem> 
            </asp:ListBox> 
       <input id="Button2" type="button" onclick="openChild()" value="button" />
    Message.aspx页面 .(这里需要注意的是要把script的语句放到 txtSxr 后面 
    <input id="txtSxr" type="text" /> 
                <script language="javascript" type="text/javascript"> 
                    var k = window.dialogArguments;  
                    document.getElementById("txtSxr").value = k.document.getElementById("lstSjr").value;  
            </script>