Skip to main content
 首页 » 编程设计

c#之Infragistics WebDataGrid 按列名 : VB. 从选定的行中获取值 net 到 C# 的转换

2024年02月02日34itcoder

我正在将 VB.NET 中带有代码隐藏的网站转换为 C#。我遇到的唯一实际问题是在 RowSelectionChanged 事件中按列名从 Infragistics WebDataGrid 行获取数据。

示例 VB.NET 代码:

If Me.WebDataGrid1.Behaviors.Selection.SelectedRows(0).DataItem("Status").ToString <> "Released" Then 
        '"Status" is the column name 
End If 

我想把它改成这样就可以了,但无济于事。

if (this.WebDataGrid1.Behaviors.Selection.SelectedRows[0].DataItem["Status"].ToString() != "Released") {  
        //do stuff 
} 

具体来说,我得到的错误是,无法将使用 [] 的索引应用于“对象”类型的表达式,我非常肯定这是指 DataItem["Status"] 部分。

如何从选定行中获取由名称指定的列的值?

更新:我找到了一个解决方案,在下面的答案中,但它可能会做得更好。如果出现更好的答案,我会很乐意接受不同的答案。

请您参考如下方法:

我找到了一个有效的解决方案 here ,但感觉有点迂回。

GridRecord selectedRow = e.CurrentSelectedRows[0]; 
DataRowView dataItem = (DataRowView)selectedRow.DataItem; 
DataRow dataRow = dataItem.Row; 
object[] valueArray = dataRow.ItemArray; 
int columnIndex = WebDataGrid1.Columns["Status"].Index; 
string statusValue = selectedRow.Items[columnIndex].Value.ToString(); 
 
if (statusValue != "Released") { 
    //do stuff 
}