before you bind the datatable to the datagrid, add an additional column:DataTable1.Columns.Add("newkey",typeof(string), "字段1 + '#' + 字段2");then doDataGrid1.DataKeyField = "newkey";
...then you can dostring s = DataGrid1.DataKeys[nItemIndex];
string[] sKeys = s.Split('#');
....

解决方案 »

  1.   

    全部用表格+<%#DataBinder.Eval(Container,"DataItem.Id")%>... <%#....%>
    想怎样都可以!
      

  2.   

    sql语句中仍将两个字段选出,但是在datagrid中不让其显示,设该列宽度为0,但是读该列的时候就可以读出了
      

  3.   

    saucer(思归) ?!你也太玩世不恭了吧?!?!saucer.aim = 哗众取宠,买能!引用:
    before you bind the datatable to the datagrid, add an additional column:DataTable1.Columns.Add("newkey",typeof(string), "字段1 + '#' + 字段2");then doDataGrid1.DataKeyField = "newkey";
    ...then you can dostring s = DataGrid1.DataKeys[nItemIndex];
    string[] sKeys = s.Split('#');
    ....
      

  4.   

    在 DataGrid 的 SelectedIndexChanged 事件里获得选定记录的两个构成主键的字段!
    SelectedIndexChanged 事件:在两次服务器发送之间,在数据列表控件中选择了不同的项时发生。 private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    DataView dv;
    DataRowView drv;
    int index;
    string key1, key2; DataGrid1.DataBind(); index = DataGridQuestions.SelectedItem.DataSetIndex; dv = (DataView) DataGridQuestions.DataSource;
    drv = dv[index]; key1 = drv["字段1"].ToString();
    key2 = drv["字段2"].ToString(); …… }
      

  5.   

    private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    DataView dv;
    DataRowView drv;
    int index;
    string key1, key2; DataGrid1.DataBind(); index = DataGrid1.SelectedItem.DataSetIndex; dv = (DataView) DataGrid1.DataSource;
    drv = dv[index]; key1 = drv["字段1"].ToString();
    key2 = drv["字段2"].ToString(); …… }