参考http://blog.csdn.net/kwklover/archive/2003/09/30/20978.aspx然后将OpenPopUp方法的第一个参数设置为要点击的DataGrid就行了

解决方案 »

  1.   

    你就不要用什么超级连接,直接在selectindexchange事件里面加Page.RegisterStartupScript("","<script>window.open('text1.aspx'....);</script>");
    然后在itemdatabound事件中加
    if ((itemType != ListItemType.Pager) && (itemType != ListItemType.Header) && (itemType != ListItemType.Footer)) 
    {
    LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0];
    e.Item.Attributes["onclick"] = Page.GetPostBackClientHyperlink(button, "");
    }
    当然前提是你有选择列就是selectbutton,可以把它隐藏,在上面加e.item.cells[0].visible=false;或者用datagrid.columns[0].visible =false;
      

  2.   

    可以试试看这样做:
    foreach (item in datagrid.items)
    {
    item.Attributes.Add("OnClick", "javascript:window.open('url');");
    }
    <---伪代码~只是讲个思路~就是给每个item(最终生成<table>的<tr>)加上onClick事件。
      

  3.   

    to 懒人:你的方法我试过,可是有没有其他的方法?一定要用linkbutton吗?“任何地方”是指同一行的任何地方,因为有时候标题栏很短。。
      

  4.   

    private void PageBind()
    {
    this.dataSourceDT = new DataTable("testDT");
    this.dataSourceDT.Columns.Add("A");
    DataRow dataRow; for(int i=0; i < 100; i++)
    {
    dataRow = this.dataSourceDT.NewRow();
    dataRow["A"] = i.ToString("000");
    this.dataSourceDT.Rows.Add(dataRow);
    } this.dgMyDataGrid.DataSource = this.dataSourceDT;
    this.dgMyDataGrid.DataBind(); foreach(System.Web.UI.WebControls.DataGridItem dgItem in this.dgMyDataGrid.Items)
    {
    dgItem.Attributes.Add("OnClick", "javascript:alert('" + dgItem.ItemIndex.ToString() + "');");
    }
    }
    =====================
    试了一下,上面是代码。:D
      

  5.   

    to anycat(有猫就好):那怎么得到当前选择的项的ID呢? 不是indexid是实际数据库中的ID
      

  6.   

    用anycat(有猫就好)的方法,然后把实际数据库中的ID读出来,绑定到DG上,隐藏了就是了。
      

  7.   

    LinkButton 的宽度=100%不就ok了
      

  8.   

    我觉得最简单的办法,给datagrid加一个隐藏的列,绑定数据库的ID。
    foreach(System.Web.UI.WebControls.DataGridItem dgItem in this.dgMyDataGrid.Items)
    {
    //假设我把数据库的ID绑定在DataGrid的第一列
    dgItem.Attributes.Add("OnClick", "javascript:alert('" + dgItem.Cells[0].Text.ToString() + "');");
    }
      

  9.   

    那怎么得到实际的ID值呢?我是在ItemDataBound 里面处理的 用dgItem.Cells[0].ToString()好像得不到啊。首项是ID
      

  10.   

    OK 可以了 怎么没想到加text,汗。多谢有猫就好  偶也喜欢猫猫啊 呵呵~~  结贴了。。