Как получить значение поля выбранной строки 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
метод, но я действительно не знаю правильного синтаксиса, чтобы получить значение выбранной строки.
помогите!!!
4 ответов
изменение выбора отличается от изменения сфокусированной строки. См. документацию для 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")
.
Я нашел свой ответ здесь после долгого времени поиска в google: http://www.devexpress.com/Support/Center/Question/Details/Q347704
использовать ASPxGridView.GetSelectedFieldValues метод get выбранные значения строк на стороне сервера.
вы также можете получить выбранную строку данных в качестве
int rowHandle = gridView1.FocusedRowHandle;
if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
{
return this.gridView1.GetDataRow(rowHandle);
}
это вернет DataRow
обратите внимание, что это когда я использую Devexpress gridControl в WinForms
Если вы хотите получить только значение поля ID, вы можете использовать это
int id = Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString());
Если у вас есть объект, вы можете использовать этот
Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels;
и получить метод значения
int ID = selectedPersonel.ID;