繁体   English   中英

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

[英]How to get field value of selected Row 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);
        TextBox1.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")

经过很长一段时间搜索谷歌,我发现我的回答在这里: http//www.devexpress.com/Support/Center/Question/Details/Q347704

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

您还可以将选定的数据行作为

int rowHandle = gridView1.FocusedRowHandle;
   if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
   {
    return this.gridView1.GetDataRow(rowHandle);
   }

这将返回DataRow

请注意这是我在WinForms中使用Devexpress gridControl的时候

如果您只想获得ID字段值,可以使用它

int id =  Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString());

如果你有一个对象,你可以使用它

Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels;

并获得价值方法是

int ID = selectedPersonel.ID;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM