DataKeys 集合访问数据列表控件中每个记录的键值(显示为一行)。这使您可以用数据列表控件存储键字段而无需在控件中显示它。此集合自动用 DataKeyField 属性指定的字段中的值填充。
你的值 是否在datakeyfield中?

解决方案 »

  1.   

    建议在DataGrid中建一选择列,用下面的事件就可实现你要的东西:
    private void grdOD_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ListItemType itemType = e.Item.ItemType;
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#cccc66'");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");
    }
    if ((itemType != ListItemType.Pager) && (itemType != ListItemType.Header) && (itemType != ListItemType.Footer))  {
    LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0];
    //button.Visible=false;

    e.Item.Attributes["onclick"] = Page.GetPostBackClientHyperlink(button, "");

    }
    e.Item.Cells[0].Visible=false;
    } private void grdOD_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    BindGrid();
    Session.Add("ODNumber",grdOD.SelectedItem.Cells[2].Text.ToString());

    }
      

  2.   

    在选择索引改变事件中
    Label1.text = DataGrid1.Items[DataGrid1.SelectedIndex].Cells[你的列号].Text
    你试试吧!
      

  3.   

    [DataGrid1.SelectedIndex]的值在datagrid未选中的时候是什么?
      

  4.   

    grdOD_ItemDataBound为选中事件,grdOD_SelectedIndexChanged为取值。
    不用session也行直接用
    label1.text=grdOD.SelectedItem.Cells[2].Text.ToString());
    cells[2]是选中行的第三列,是从0开始的。