在 private void DataGrid1_SelectedIndexChanged_1(object sender, System.EventArgs e)
{
事件里面:
myProjectID=(this.DataGrid1.Items[this.DataGrid1.SelectedIndex].Cells[0].Text).ToString();
这样实现不了。

解决方案 »

  1.   

    设置DataGrid 的 DataKeyField 属性为第一列的列名,然后在DataGrid1_SelectedIndexChanged中使用: myProjectId = (int)DataGrid1.DataKyes[DataGrid1.SelectedIndex] 来取得值.
      

  2.   

    思想同上 不过是  myProjectID = DataGrid1.Datakeys[e.item.itemindex].ToString ;(如果myProjectID是字符型)帮助文档有详细说明文件
      

  3.   

    DataGrid.DataKeyField =""
    DataGrid.DataKeys[DataGrid.SelectedIndex]
      

  4.   

    设置datagrid的datakeyfield属性,然后在事件中就能够用datakeys[index]来取值了
      

  5.   

    用选择列解决,点击select写事件
      

  6.   

    加一个选择列,设成第一列,不可见
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex<0)  return;
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {             e.Item.Attributes.Add("OnClick",Page.GetPostBackClientEvent(e.Item.Cells[0].Controls[0],String.Empty)); } }在这里取值
    private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
          
      CurrentCsbm= DataGrid1.Items[DataGrid1.SelectedIndex].Cells[5].Text;
    }
      

  7.   

    myProjectID=(this.DataGrid1.Items[this.DataGrid1.SelectedIndex].Cells[0].Text).ToString();
    -->
    TextBox txt = (TextBox)this.DataGrid1.Items[this.DataGrid1.SelectedIndex].
    Cells[0].Controls[0];myProjectID = Int32(txt.Text);