C# 从gridview获取底层ObjectDataSource
我有一个绑定到ObjectDataSource的gridview,其中包含一个复选框,用于选择网格中的项目 在CheckChanged事件中,我得到了如下代码:C# 从gridview获取底层ObjectDataSource,c#,asp.net,datagridview,C#,Asp.net,Datagridview,我有一个绑定到ObjectDataSource的gridview,其中包含一个复选框,用于选择网格中的项目 在CheckChanged事件中,我得到了如下代码: //Clear the existing selected row foreach (GridViewRow oldrow in uxRaceList.Rows) { var otherOpt = (RadioButton)oldrow.FindControl("rd
//Clear the existing selected row
foreach (GridViewRow oldrow in uxRaceList.Rows)
{
var otherOpt = (RadioButton)oldrow.FindControl("rdbRaceNum");
if (otherOpt != sender)
otherOpt.Checked = false;
}
//Set the new selected row
RadioButton rb = (RadioButton)sender;
GridViewRow row = (GridViewRow)rb.NamingContainer;
((RadioButton)row.FindControl("rdbRaceNum")).Checked = true;
既然我有了对GridViewRow的引用,我是否可以访问我的OriginalDataSourceObject
我知道我可以获得网格中显示的数据:
_selectedRaceNum = Convert.ToInt32(rb.Text.Substring(0, 1));
但我想要的是:
var odsMyobject=row.DataItem作为MyCustomObject
我知道我可以在网格中存储一个ID,并使用它来查看我的数据库以获取数据,但我希望避免再次往返数据
也许我可以向ObjectDataSource请求对象
谢谢
你的问题-现在我已经有了GridViewRow的引用,我可以吗
获取我的原始数据源对象
GridView数据源对象将在页面生命周期结束时被释放。加载页面后,您可以在回发期间的快速观察中查看它
你的问题-我知道我可以在网格中存储一个ID,并使用它来查看我的
数据库获取数据,但我希望避免再次往返到
数据
您可以选择在回发期间将数据保持在ViewState/Session中。如果只是将数据保持在同一页中,那么只应考虑ViewState
你的问题-但我想要的是:
var odsMyobject=row.DataItem作为MyCustomObject
您可以在GridView中使用数据键,并且可以使用已经使用NamingContainer计算的RowIndex轻松访问它。另一个选项/替代方法是隐藏控件并将其与属性绑定,然后访问此控件,如下所示
((ControlType)row.FindControl("ControlID")).
我可能误解了您的问题,但是如果您希望将数据对象绑定到特定的GridViewRow,您应该能够使用DataItem属性来获取它 获取GridViewRow对象所指向的基础数据对象 束缚
谢谢我对数据源对象的存在时间有一个误解。