我使用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);
TextBox1.Text = topic.Rows[0][1].ToString();
}
...
DevGridview中似乎不存在gv.SelectedRow
方法。
根据建议,我尝试使用FocusedRowIndex
方法,但我真的不知道正确的语法来获取所选行的值。
帮助!!!
答案 0 :(得分:8)
更改选择与更改聚焦行不同。有关两者之间的区别,请参阅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"];
答案 1 :(得分:1)
经过很长一段时间搜索谷歌后,我发现我的回答是: http://www.devexpress.com/Support/Center/Question/Details/Q347704
使用ASPxGridView.GetSelectedFieldValues方法获取服务器端的选定行值。
答案 2 :(得分:1)
您还可以选择数据行
int rowHandle = gridView1.FocusedRowHandle;
if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
{
return this.gridView1.GetDataRow(rowHandle);
}
这将返回DataRow
请注意,这是我在WinForms中使用Devexpress gridControl的时候
答案 3 :(得分:0)
如果您只想获取ID字段值,可以使用此
int id = Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString());
如果你有一个对象,你可以使用这个
Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels;
获取值方法
int ID = selectedPersonel.ID;