Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从gridview获取底层ObjectDataSource_C#_Asp.net_Datagridview - Fatal编程技术网

C# 从gridview获取底层ObjectDataSource

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

我有一个绑定到ObjectDataSource的gridview,其中包含一个复选框,用于选择网格中的项目

在CheckChanged事件中,我得到了如下代码:

       //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对象所指向的基础数据对象 束缚


谢谢我对数据源对象的存在时间有一个误解。