如何将父页面中gridview的值传递给弹出页面中的表单

时间:2012-06-21 17:03:28

标签: c# javascript visual-studio-2010 gridview oracle11g

我只在页面中有一个gridview,并且点击一个按钮列字段Gridview1_RowCommand被执行。我坚持的是如何将单个refno(在网格中)传递给弹出页面。我想使用这个拒绝生成查询 对此的帮助将非常感激 下面的代码,我用过,我就卡在这里..

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

    Page.RegisterStartupScript("test", "<script language='javascript'>Openpopup();</script>");
}


 <script language='javascript'>
   var popupobj;
  function Openpopup() 
{
      popupobj = window.open("popup.aspx", "_blank", "width=1000,height=500,statusbar=no,toolbar=no,scrollbars=no,resizable=no,navbar=no,screenX=800,screenY=800top=100,left=100");
    popupobj.focus();
}
 </script>  

1 个答案:

答案 0 :(得分:0)

由于您正在使用RowCommand事件,为了能够将此值发送到Popup,您需要将RowIndex设置为您单击以打开弹出窗口的Button的CommandArgument。 将Value(refno)设置为传递给DataKey中的Popup。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    var Button1= e.Row.FindControl("Button1") as Button;
    Button1.CommandName = "ButtonClick";
    // cast RowIndex in line code to string if e.CommandArgument accepts string
    Button1.CommandArgument = e.Row.RowIndex;
}

现在在RowCommand

protected void GridView1_RowCommand(object sender, GridViewRowCommandArgs e)
{
    if(e.CommandName == "ButtonClick")
    {
        var refno = GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)]["refno"];
        Page.RegisterStartupScript("test", "<script language='javascript'>Openpopup(' + refno + ');</script>"); 
    }
}

这种方式现在你在Javascript函数参数中有refno。将此参数作为Javascript弹出函数中的查询字符串传递。

这样您就可以在弹出页面中访问refno。