C# · 12月 23, 2021

c# – 如何获取所选行Devexpress GridView的字段值?

我用DevexpressGridView显示所有TOPIC(id,title,content) <dx:ASPxGridView ID=”gv” runat=”server”OnSelectionChanged=”gv_SelectionChanged” >

我有grid_SelectionChanged事件:

protected void gv_SelectionChanged(object sender,EventArgs e) { int id= selected row…???; //how can I get the value of selected row string sql = “select * from TOPIC where idTOPIC=”+id; DataTable topic = l.EXECUTEQUERYsql(sql); Text@R_687_2419@1.Text = topic.Rows[0][1].ToString(); }

看来gv.SelectedRow方法在DevGridview中不存在.

按照建议,我尝试使用FocusedRowIndex方法,但我真的不知道正确的语法来获取所选行的值.

救命!!!

解决方法 更改选择与更改聚焦行不同.有关两者之间的差异,请参阅 Selection的文档.

您可以使用gv.GetSelectedFieldValues获取所选的行.

var ids = gv.GetSelectedFieldValues(“id”);foreach( var id in ids ) DoSomethingWithObject(id);

如果您对焦点行感兴趣,则应该处理FocusedRowChanged事件.

您可以使用FocusedRowIndex值来索引gv.DataSource的行,例如:

DataTable ds = (DataTable)gv.DataSource;var id = ds.Rows[gv.FocusedRowIndex][“id”];

或者你可以使用var id = gv.GetRowValues(gv.FocusedRowIndex,”id”).