Я хочу включить или отключить определенную строку в соответствии с входом в систему соответствующего пользователя. Итак, я использую событие rowdatabound, но у меня есть ошибка в этой строке:
DataRow drv = ((DataRowView)e.Row.DataItem).Row;
Здесь e.Row.DataItem имеет связанную информацию о строке. Я контролировал, и он имеет значения строки. Но когда я хочу продолжить, я получаю эту ошибку:
Невозможно преобразовать объект типа «‹>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]]» в тип «System.Data.DataRowView».
Затем я изменил эту строку:
DataRowView drv = e.Row.DataItem as DataRowView;
Для этого условия он не выдает ошибки, но drv по-прежнему имеет нулевое значение. 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
в настоящее время? - person Tim Schmelter   schedule 14.01.2014DataRow drv = e.Row
? - person Secret Squirrel   schedule 14.01.2014if statement
должен быть вверху этого метода. прежде чем вы принесете все этиCARGIs
- person Secret Squirrel   schedule 14.01.2014RowDataBound
, который выглядит как запрос, который должен был быть полностью выполнен вне этого метода. - person Secret Squirrel   schedule 14.01.2014