Repeater 控件让满足条件的行变色

xuezhihua84 2012-04-09 01:35:16
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.Row;
if (peoplerow.Age > 50)
{
TextBox txtAge = (TextBox)e.Item.FindControl("txtAge");
txtAge.BackColor = Color.Red;
}

}
var peoplerow = (DataSet1.T_PeopleRow)drv.Row;
未将对象引用设置到对象的实例,大牛们看看怎么解决?谢谢了~
...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuezhihua84 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

你应该加

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.R……
[/Quote]
找到问题所在了,多谢!
xuezhihua84 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

你应该加

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.R……
[/Quote]
找到问题所在了,多谢!
xuezhihua84 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

你应该加

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.R……
[/Quote]
找到问题所在了,多谢!
孟子E章 2012-04-09
  • 打赏
  • 举报
回复
你应该加

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.Row;
if (peoplerow.Age > 50)
{
TextBox txtAge = (TextBox)e.Item.FindControl("txtAge");
txtAge.BackColor = Color.Red;
}
}

  • 打赏
  • 举报
回复
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = Convert.ToInt32(drv["Age"]);
if (peoplerow> 50)
{
TextBox txtAge = (TextBox)e.Item.FindControl("txtAge");
txtAge.BackColor = Color.Red;
}
孟子E章 2012-04-09
  • 打赏
  • 举报
回复
你应该加

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.Row;
if (peoplerow.Age > 50)
{
TextBox txtAge = (TextBox)e.Item.FindControl("txtAge");
txtAge.BackColor = Color.Red;
}
}

xuezhihua84 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = Convert.ToInt32(drv["Age"]);

试试
[/Quote]
改成这样后还是出现同样的问题。加了判断行item 不为空
小小农民 2012-04-09
  • 打赏
  • 举报
回复
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//加一行判断
if(e.Item == null) //类似的,判断repeter该行不为空
{return;}

DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = (DataSet1.T_PeopleRow)drv.Row;
孟子E章 2012-04-09
  • 打赏
  • 举报
回复
DataRowView drv = (DataRowView)e.Item.DataItem;
var peoplerow = Convert.ToInt32(drv["Age"]);

试试

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧