gridView 中有个imageButton 点击按钮事件  用js打开一个新的窗体:window.showModalDialog('fileManage.aspx?id=???','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;')其中:'fileManage.aspx?id=???' 这个ID 怎么把本行的主键 <%#Eval("ID") %>传入?

解决方案 »

  1.   

    你在gridView 的imageButton 写了 JS调用事件对吧?  你给JS事件传入参数就好了啊  把这个<%#Eval("ID") %> 传入就好! 写法 也就是<%#Eval("ID") %> 
    function d(id)
    {
    var key;
    key = id;
    window.showModalDialog('fileManage.aspx?id='+key,'tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;') 
    .......
    }
    <asp:imageButton id=1 onclick=d('+<%#Eval("ID") %>+')></asp:imageButton>
     大概就这样的
      

  2.   

    在GridView数据绑定时,strID = ID;//要绑定的值GridView1.Rows[行索引].Cells[要绑定的列索引].Text = string.Format("<a href='#'><image src='../Images/tree/wmplay.gif' border=0 onclick=javascript:window.showModalDialog('fileManage.aspx?id={0}','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;')  ></a>", strID);
      

  3.   

    在GridView的ItemDataBound事件中
    protected void GridView1_ItemDataBound(object sender, EventArgs e)
    {
       string ID = yourID;
       ImageButton imgBtn = e.Item.FindControl("imgBtn") as ImageButton;
       imgProject.OnClientClick = "Javascript:window.showModalDialog('fileManage.aspx?id="+ID +"','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;')"
    }
      

  4.   

    在GridView的ItemDataBound事件中 
    protected void GridView1_ItemDataBound(object sender, EventArgs e) 

      string ID = yourID; 
      ImageButton imgBtn = e.Item.FindControl("imgBtn") as ImageButton; 
      imgProject.OnClientClick = "Javascript:window.showModalDialog('fileManage.aspx?id="+ID +"','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;');return false;" 
    }加上return false;
      

  5.   

    你可通过
    string id = GridView1.DataKeys[索引值].Value.ToString();
      

  6.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string ID = yourID; 
                ImageButton imgbtnDel = e.Row.FindControl("imgbtnDel") as ImageButton;            imgbtnDel.Attributes.Add("OnClientClick","Javascript:window.showModalDialog('fileManage.aspx?id="+ID +"','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;'"        }
        }试下看行不行??
      

  7.   

    在GridView的ItemDataBound事件中 
    protected void GridView1_ItemDataBound(object sender, EventArgs e) 

      ListItemType itemType = (ListItemType)e.Item.ItemType;
      if (itemType == ListItemType.Header || itemType == ListItemType.Separator)
          return;  if (itemType == ListItemType.Footer)
      return;    DataRowView dr = (DataRowView)e.Item.DataItem;
      string ID = dr["ID"].ToString();
      ImageButton imgBtn = e.Item.FindControl("imgBtn") as ImageButton; 
      imgProject.OnClientClick = "Javascript:window.showModalDialog('fileManage.aspx?id="+ID +"','tempdialog','dialogWidth:500px;dialogHeight:220px;status:no;scroll:no;');return false;" 
    } 加上return false; ID可以这样从数据源中取得