我想将子页面GridView中选中的行的数据传给父页面对应的文本框中,有谁做过给点提示谢谢

解决方案 »

  1.   

    和普通的传值没什么区别
    你在向gridview插入数据的过程中同时将数据放到(例如数组)
    在选中行的时候 取得行号 从而取得数据的下标
    这就可以将数组中的内容取出来
    以后你想干什么就干什么
      

  2.   

    gridview中的数据不是插入的,是查询的
      

  3.   

    加个模板列Button参数绑定主键ID,
    Button单击事件中注册JS脚本来
    处理子页面关闭并传值给父页面文本框
      

  4.   

    不是很难的
    可以在gridview的第一列加一个checkBox,或者直接就是一个触发动作的button,然后再根据操作的行,将行内的数据读出来,存在一个容器中(比较随便了),剩下的就简单了吧。。
      

  5.   

    要不直接就给Gridview的行添加单击的JS事件
      

  6.   

    楼主说是查询不是插入,怎么不是插入,查询后的数据插入GridView中.
    或者说绑定到GridView,子页面父页面是怎么回事?学习.
      

  7.   

    可参考
    http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080426110908CDR&fumcde=FUM20041006161839LRJ
      

  8.   

    在子页中使用opener获得父页的引用然后你想怎么操作父页就使用opener对象
      

  9.   

    看一下这篇文章,介绍了如何在父窗口与弹出窗口之间进行传值。大体的思路是:父页面创建弹出窗口,并声明接受窗口返回值的变量<script type="text/javascript">
    ..
    // 弹出子窗口,并接受返回值
    var retValue = window.showModalDialog('popuppageurl');
    ..
    // 处理返回值
    if (null != retValue){
        // retValue即选中行的主键数组,对该数组做进一步处理
        for(var i=0;i<retValue.length;i++){
            retValue[i];
        }
    }</script>子窗口将选中的行的主键作为返回值传递给父页面,然后关闭自己<asp:GridView>..
    // 用JavaScript脚本,在每行的CheckBox发生变化时,把这一行的数据主键存入一个Js变量中或从中移除
    <asp:CheckBox onclick="fnSelectRow(this)"/>
    ..</asp:GridView>
    <script type="text/javascript">// 用该数组保存你选定的行的主键值
    var arrSelectedKeys = new Array();function fnSelectRow(source){
        if(source.checked){
            // 或取出数据行主键,可事先存入一个隐藏域之类的控件,然后读取并存入数组
             // document.getElementById...
        }
        else{
            // 将这一行主键从数组中移除
        }
    }
    function fnFinalize(){
        // 希望返回的值存入returnValue变量
        window.returnValue = arrSelectedKeys;
        window.close();
    }
    </script>
      

  10.   

    我想将子页面GridView中选中的行的数据传给父页面对应的文本框中,有谁做过给点提示谢谢
    ==
    子页面的GridView RowDataBound事件中注册客户端脚本,类似10楼
      

  11.   

    用js写方法,在gridview中加入脚本调用,利用url传给子页面不就ok咯
      

  12.   

    在后台写行啊,在后台给单选项加个CheckedChanged事件就行啊
      

  13.   


        protected void Button1_ServerClick(object sender, EventArgs e)
        {
            if (Request.Params["YBBM"] == null)
            {
                Response.Write("<script>alert('请先选择药品'); location.href='ypdz.aspx';</script>");
                return;
            }
            string ybbm = Request.Params["YBBM"].ToString().Trim();
            string sql = "select * from ypdz where ybbm='" + ybbm + "'";
            try
            {
                Database db = new Database();
                DataSet ds = new DataSet();
                ds = db.GetDataSet(sql);
                string dd = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim();
                hdYBBM.Value = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim();
                hdYBDJ.Value = ds.Tables["MyData"].Rows[0]["ypdj"].ToString().Trim();
                hdYBLX.Value = ds.Tables["MyData"].Rows[0]["yblx"].ToString().Trim();
                hdYBMC.Value = ds.Tables["MyData"].Rows[0]["ybmc"].ToString().Trim();
                hdYBYJ.Value = ds.Tables["MyData"].Rows[0]["ybyj"].ToString().Trim();
                hdZFBL.Value = ds.Tables["MyData"].Rows[0]["n_zfbl"].ToString().Trim();
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
            Response.Write("<script>window.opener.document.getElementById( 'YBBM').value=document.getElementById('hdYBBM').value;</script>");
            Response.Write("<script>window.close();</script>");
        }
    我这这么写的就是不行啊
      

  14.   

    function checkSelectCount(gvTableName)  //gridview的ID
    {
        var tmp=
        {
            count:0,
            ID:undefined   //需要几个值在这里加
        }
        
        try
        {
            var gvTable = document.getElementsByName(gvTableName);
            var gvTr=gvTable[0].getElementsByTagName("tr");
            for(var i=0; i<gvTr.length; i++)
            {
                var gvTd=gvTr[i].getElementsByTagName("td");
                if(gvTd.length!=0)
                {
                    var gvCheckBox=gvTd[0].getElementsByTagName("INPUT")[0];
                    if(gvCheckBox!=undefined)
                    {
                        if(gvCheckBox.checked==true)//选中的列
                        {
                            tmp.count++;
                            tmp.ID=gvTd[1].innerHTML;//1是gridview第二列,取选中的第二列的值
                        }
                    }
                }
            }
        }
        catch(err){ }
        return tmp;
    }gridview第一列为复选框,checkbox。
    在提交按钮里添加一个js,调用上面这个方法,就可以得到你想要的值,你就可以在js里跳转页面传你想传的值啦。
      

  15.   

    楼主的问题应该是在B页面选择中信息后,点提交后,B页面没有了,出现A页面,在文本框中显示选中的信息。
    其实有一个显示的方法。楼主要传的其实就是一个值。
    你在B页面可以取到这个选中的值吧。用redirect跳转到A,在后面加一个参数就行了a.aspx?values="你的值";
    在A里面写
    if(Request.Querything("values")!="")
    {
        this.TextBox1.text = Request.Querystring("values").tostring();
    }