我希望能根据相关用户的登录情况启用或禁用特定行。因此,我使用了rowdatabound事件,但是在这一行中出现了错误:
在这里,e.Row.DataItem具有相关的行信息。我已经进行了控制,并且它具有行的值。但是当我想要继续时,我会遇到这个错误:
Unable to cast object of type '<>f__AnonymousType0
然后我更改了这一行:
我该如何解决这个错误?先感谢您的帮助。
DataRow drv = ((DataRowView)e.Row.DataItem).Row;
在这里,e.Row.DataItem具有相关的行信息。我已经进行了控制,并且它具有行的值。但是当我想要继续时,我会遇到这个错误:
Unable to cast object of type '<>f__AnonymousType0
14[System.Int32,System.Int32,System.String,System.String,System.DateTime,System.String,System.String,System.String,System.String,System.String,System.String,System.Nullable
1[System.DateTime],System.String,System.Nullable`1[System.Boolean]]' to type 'System.Data.DataRowView'。然后我更改了这一行:
DataRowView drv = e.Row.DataItem as DataRowView;
对于这种情况,虽然没有出现错误,但drv仍然是null值。Dataitem并没有分配它的值。
在这里,相关的完整代码:
protected void gvListele_RowDataBound(object sender, GridViewRowEventArgs e)
{
dbeDataContext db = new dbeDataContext();
var c = (from v in db.CAGRIs where v.UserID != Convert.ToInt32(Session["user"]) select v).ToArray();
if (c != null)
{
foreach (var item in c)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRow drv = ((DataRowView)e.Row.DataItem).Row;
int tempID = Convert.ToInt32(drv["CagriID"].ToString());
if (item.CagriID == tempID)
{
e.Row.Enabled = false;
}
}
}
}
}
我该如何解决这个错误?先感谢您的帮助。
DataRowView
。选择一个不同于匿名类型的数据源并进行正确的转换。目前的DataSource
是什么? - Tim SchmelterDataRow drv = e.Row
有什么问题吗? - Squirrel5853if语句
,在获取所有这些CARGI
之前。 - Squirrel5853RowDataBound
中进行获取,看起来像是一个应该在此方法之外完全执行的查询。 - Squirrel5853