Devexpress 如何在ASPxGridView中按键值或可见索引获取行,然后更改列值?

Devexpress 如何在ASPxGridView中按键值或可见索引获取行,然后更改列值?,devexpress,aspxgridview,Devexpress,Aspxgridview,你好 在ASPxGridView中,是否有一种方法可以通过其VisibleIndex或KeyValue获取行,以便我可以更改其中的任何列值?我的意思是: var row = myGrid.SelectRowByKeyValue(myKeyValue); OR: var row = myGrid.SelectRowByVisibleIndex(myKeyValue); row["Column1"] = true; 编辑: 我想做的是,每次按下按钮时,我都想检查一行(我使用ajax不重新加

你好
在ASPxGridView中,是否有一种方法可以通过其VisibleIndex或KeyValue获取行,以便我可以更改其中的任何列值?我的意思是:

var row = myGrid.SelectRowByKeyValue(myKeyValue);
OR:
var row = myGrid.SelectRowByVisibleIndex(myKeyValue);  

row["Column1"] = true; 
编辑:
我想做的是,每次按下按钮时,我都想检查一行(我使用ajax不重新加载所有页面)


谢谢

这可以通过以下方法完成。请注意,仅更改DataRow中的值是不够的。如果希望保留这些更改,请将它们保存到数据库中

由于您使用的是未绑定列,因此应处理CustomUnboundColumnData事件,并在此事件处理程序中为此行提供修改后的数据。本主题中介绍了常用方法。如果这没有帮助,请更详细地描述

更新


你的方法不正确。ASPxGridView不提供设置特定单元格(TD)文本的方法。相反,您应该强制网格引发CustomUnboundColumnData事件。这可以使用ASPxGridView的DataBind方法完成。在这个事件处理程序中,您应该确定已处理行的KeyField值,将其与单击按钮所在行的KeyField值进行比较,并返回所需的值。这就是我将如何实现此功能的方法…

这可以使用以下方法完成。请注意,仅更改DataRow中的值是不够的。如果希望保留这些更改,请将它们保存到数据库中

由于您使用的是未绑定列,因此应处理CustomUnboundColumnData事件,并在此事件处理程序中为此行提供修改后的数据。本主题中介绍了常用方法。如果这没有帮助,请更详细地描述

更新


你的方法不正确。ASPxGridView不提供设置特定单元格(TD)文本的方法。相反,您应该强制网格引发CustomUnboundColumnData事件。这可以使用ASPxGridView的DataBind方法完成。在这个事件处理程序中,您应该确定已处理行的KeyField值,将其与单击按钮所在行的KeyField值进行比较,并返回所需的值。这就是我将如何实现此功能…

我使用以下代码解决了此问题:

for (int i = 0; i < myGridView.VisibleRowCount; i++)
{
 if ( [My condition] )
   {
     (
       (CheckBox)myGridView
         .FindRowCellTemplateControl(i,
                                     myGridView.Columns["MyColumnName"] as GridViewDataColumn,
                                     "My_Unbound_Control_Name"
                                    )
     ).Checked = true;
   }
}  
for(int i=0;i

我的方法可能不正确,但我无法用另一种方法解决它。

我使用以下代码解决了它:

for (int i = 0; i < myGridView.VisibleRowCount; i++)
{
 if ( [My condition] )
   {
     (
       (CheckBox)myGridView
         .FindRowCellTemplateControl(i,
                                     myGridView.Columns["MyColumnName"] as GridViewDataColumn,
                                     "My_Unbound_Control_Name"
                                    )
     ).Checked = true;
   }
}  
for(int i=0;i

我的方法可能不正确,但我无法用另一种方法来解决它。

谢谢,但此方法为我提供了此行的实体。.我只希望该行是自己的,因为我在网格中使用的未绑定列在实体中没有属性。我将试着弄清楚。.我试图做的是(伪代码):为(int i=0;i