- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想根据登录的相关用户启用或禁用特定行。所以我使用 rowdatabound 事件,但我在这一行中有一个错误:
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 仍然具有空值。 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;
}
}
}
}
}
我能为这个错误做些什么?提前致谢。
最佳答案
我两天前就解决了我的问题。我用过这个:
int callID = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "CagriID"));
所有事件:
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)
{
int callID = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "CagriID"));
if (callID == item.CagriID)
{
e.Row.Enabled = false;
continue;
}
}
}
}
}
关于c# - gridview rowdatabound 事件中的 e.Row.DataItem 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114085/
我有 2 个 Gridview。第一个网格有一个按钮,当单击该按钮时,它将使用基于所单击按钮的 ID 的数据填充第二个网格。 然后我在 RowDataBound 函数中添加了代码,以根据所选行显示网格
我希望有人能帮帮忙!我有一个具有 gridview 的用户控件(UC 中有一个更新面板) 我在 2 个不同的页面上使用这个 UC - 在这两个页面上,UC 都位于一个选项卡(ajax tabpanel
我有一个 gridview,如果选择了某个下拉列表项,我只想允许编辑文本框。在我的 RowDataBound 中,我得到了值并决定是否应该对其进行编辑,但是 .Visible 属性没有像我预期的那样工
我需要在事件 rowdatabound 中找到 gridview 中的总列数。有什么办法吗?下面是我的一些代码: protected void gvEmployee_RowDataBound(o
在 ASP.NET 页面上,我有一个填充了 LINQ 查询结果的 GridView。我在代码中设置 DataSource,然后对其调用 DataBind。在 GridView 的 RowDataBou
我有一个 rowdatabound 方法,它对两个 gridviews 是通用的。此方法的部分任务是将值分配给 GridView 的最后一列。 gridviews是一样的,但是两个gridviews的
我需要在 GridView 的 rowdatabound 事件的 DataControlRowType.Data 中获取列标题,我是这样做的: ((DataTable)((GridView)sende
我有一个 rowdatabound 方法,它对两个 gridviews 是通用的。此方法的部分任务是将值分配给 GridView 的最后一列。 gridviews是一样的,但是两个gridviews的
我有一个匿名类型的 GridView。我需要检查单元格中的值并在满足条件时突出显示该单元格。问题是,当我尝试从行的单元格中提取数据时,总是得到一个空字符串。我已成功突出显示所有单元格,并且已在 Vis
我可以在 GridView 中编辑单行。 但是,当在 MySQL 数据库中,字段 "card" 的值不为空时,我需要停止 GridView 的这一行中的编辑(并将该行传递到关闭的州)。 我尝试了这个解
我有一个 Asp.net Gridview,其中最后一列是我的总数,第 2-x 列是我的数字。 我想显示一个显示百分比的条形图 使用找到的示例 Displaying percentage bar wi
我已经添加了控件 if (e.Row.RowType == DataControlRowType.DataRow) { CheckBox chk = new Check
我在同一个页面中得到了两个gridview,它们基本上显示了相同类型的数据(不同的数量、相同的结构、相同的设计……)。 RowDataBound 里面有很多条件都是一样的(99%),所以我想减少代码。
我的网页上有一个 GridView,其数据源是一个在运行时填充的数据表。 GridView 的 AllowSorting 属性为 True。我已经成功地为此 GridView 实现了手动排序。 但我必
我在代码隐藏中创建了一个 gridview(因为它没有实际出现在页面上)。我想知道如何调用它的 rowdatabound 事件 - 因为数据已绑定(bind)到它。正好有一个Gv.RowDataBou
问题 我有一个绑定(bind)到项目表的 Gridview,其中一个属性为 clientid 和其他属性。现在我只想显示 clientid 等于给定 id 的特定行。 我有什么 Change Grid
ASP.net: ... ... C# 代码(在 RowDataDound 中用于 GridView): if (!string.IsNullOrEmpty(e.Row.Cells[4].Text)
触发 RowDataBound 事件,我的问题是如何提取 GridviewRowEventArgs e 的 DataKey? 我有一个 Publications 表,令人惊讶的是,键是 Publica
我正在处理一个 Web Forms 项目。这是一个旧的,这次添加了很多抽象。在我的一个页面上,我有一个带分页的 gridview。我正在尝试通过检查当用户转到下一个页面时当前 gridview 页面上
我的 GridView 中的 TemplateField 是这样创建的: ' ID="HiddenFieldGutscheinartID"/>
我是一名优秀的程序员,十分优秀!