2013-10-06 70 views
6

我用DevexpressGridView顯示所有TOPIC (id,title,content)如何獲取所選行Devexpress GridView的字段值?

<dx:ASPxGridView ID="gv" runat="server" 
OnSelectionChanged="gv_SelectionChanged" > 

我已經grid_SelectionChanged事件:

​​

...

它似乎gv.SelectedRow方法不存在DevGridview。

按照建議,我試過FocusedRowIndex方法,但我真的不知道正確的語法來獲取所選行的值。

幫助!!!

回答

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"]; 

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

+0

gv.Selection回饋行位置,是這樣嗎?我可以用行的位置做什麼?我的意思是,我必須做什麼才能獲得價值?你能告訴我一些細節嗎?我很難與DevexpressGridView一起使用 –

+0

使用DevExpress網格時有許多怪癖,其中之一是獲取網格中單元格的值有點棘手,主要是因爲'DataSource'不是不是強類型的。我已經更新了我的答案和更多細節。 – Alex

1

你也可以選擇數據行作爲

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

這將返回的DataRow

請注意,這是當我在的WinForms

0

使用的DevExpress gridControl如果你想獲得唯一ID字段值,你可以使用這個

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

如果你有一個對象你c在使用這種

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

,並獲得價值的方法是

int ID = selectedPersonel.ID; 
相關問題