在ItemDataBound事件中:
public void MyDataGrid_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
String ContractName = DataBinder.Eval(e.Item.DataItem, "ContractName").ToString();
String ContractID = DataBinder.Eval(e.Item.DataItem, "ContractID").ToString();
e.Item.Style["cursor"] = "hand";
e.Item.ToolTip = ContractName;
e.Item.ForeColor=Color.Blue;
e.Item.Attributes.Add("ondbclick","window.open('Details.aspx?ContractID="+ContractID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,revisable=no,left=100,top=0,width=600,height=450'); return false;window.opener=null;window.close();"); 
 }

解决方案 »

  1.   

    关键问题不是怎么实现,为什么一定要双击?
    要知道在 cell 里双击的话,接受事件的是 cell 而不是 datagrid, 效果试试就知道了
    就算做出来了,怎么保证用户的双击总是“正确”的那?
      

  2.   

    不是在cell中雙擊 而是在行的任意位置都可以..
      

  3.   

    不难吧,需要继承DataGrid类。  如果用过c++  就会比较清楚这一点。