日期:2014-05-19  浏览次数:21052 次

如何读取DataGridView中的DataGridViewColumn当前选定项的显示值(DisplayMember)
对于DataGridView中的DataGridViewColumn,绑定了DisplayMember、ValueMember之后,如何从程序中读取DisplayMember对应项的内容?

DataTable   dt   =   new   DataTable();
dt.Columns.Add( "Value ",   typeof(int));
dt.Columns.Add( "Display ",   typeof(string));

dt.Rows.Add(   1,   "國內 "   );
dt.Rows.Add(   2,   "國外 "   );

gridColumn.DisplayMember   =   "Display ";
gridColumn.ValueMember   =   "Value ";
gridColumn.DataSource   =   dt;

grid.Rows[0].Cells[gridColumn.Name].Value   =   2;  
//读取
int   value=grid.Rows[0].Cells[gridColumn.Name].Value;//可以读取value值
string   display=???   //如何读取当前的显示内容?



------解决方案--------------------
string display=dataGridView1.Rows[0].Cells[0].Tag.tostring()
------解决方案--------------------
如果DATAGRID的数据源是DATATABLE,可使用string display=datatable对象.Rows[索引][索引].ToString();获得
------解决方案--------------------
请参考:

string courseNumber = (string)this.dataGridCourses[this.dataGridCourses.CurrentRowIndex, 0];
Course selectedCourse = (Course)courses[this.dataGridCourses.CurrentRowIndex];

//Course 是个实体类型
------解决方案--------------------
DataGridView1.CurrentRow.Cells[ "Description "].FormattedValue;
------解决方案--------------------
楼主可以在添加每一列时,取一个列名,如下所示,
this.DataGridView1.Columns.Add( "Number ", "编号 ");
this.DataGridView1.Columns.Add( "Id ", "序号 ");
然后要取值时就可以用以下方法来取值了:
this.DataGridView1.Rows[rowIndex].Cells[ "Number "].Value.ToString();
this.DataGridView1.Rows[rowIndex].Cells[ "Id "].Value.ToString();