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

vyc*_*rks 6 c# asp.net devexpress aspxgridview

我使用DevexpressGridView来显示所有内容 TOPIC (id,title,content)

<dx:ASPxGridView ID="gv" runat="server"
OnSelectionChanged="gv_SelectionChanged" >
Run Code Online (Sandbox Code Playgroud)

我有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();
    }
Run Code Online (Sandbox Code Playgroud)

...

似乎gv.SelectedRowDevGridview中不存在方法.

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

救命!!!

Ale*_*lex 8

更改选择与更改聚焦行不同.请参阅文档以Selection了解两者之间的区别.

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

var ids = gv.GetSelectedFieldValues("id");
foreach( var id in ids )
    DoSomethingWithObject(id);
Run Code Online (Sandbox Code Playgroud)

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

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

DataTable ds = (DataTable)gv.DataSource;
var id = ds.Rows[gv.FocusedRowIndex]["id"];
Run Code Online (Sandbox Code Playgroud)

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


vyc*_*rks 1

经过很长时间的谷歌搜索后,我在这里找到了答案: http://www.devexpress.com/Support/Center/Question/Details/Q347704

使用ASPxGridView.GetSelectedFieldValues方法获取服务器端选定的行值。