您的位置:首页 > 其它

Repeater控件学习心得

2012-10-29 17:40 423 查看
前台代码:
View Code
图片展示

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)//一开始看视频没注意这里,导致浪费了大把时间,严谨真的是必须的
{
DataRowView rowView = (DataRowView)e.Item.DataItem;//上面不做判断这里rowView获得的会是空,详细错误会在下图展示1
DataSet2.T_UserRow userRow = (DataSet2.T_UserRow)rowView.Row;
if (userRow.Status == "禁用")
{
HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl("rowTd");//因为tr的是在控件Repeater里的Itemplate中,直接获取id获取不到利用FindControl便可以获取
trRow.Attributes["class"] = "disRow";
Button btnEnable = (Button)e.Item.FindControl("btnEnable");
Button btnDisabled = (Button)e.Item.FindControl("btnDisabled");
btnEnable.Visible = true;
btnDisabled.Visible = false;
}
else if (userRow.Status == "启用")
{
HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl("rowTd");
trRow.Attributes["class"] = "";
Button btnEnable = (Button)e.Item.FindControl("btnEnable");
Button btnDisabled = (Button)e.Item.FindControl("btnDisabled");
btnEnable.Visible = false;
btnDisabled.Visible = true;
}
else
{
throw new Exception("非法操作");
}
}
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Enable")
{
int id = Convert.ToInt32(e.CommandArgument);
T_UserTableAdapter adapter = new T_UserTableAdapter();
adapter.UpdateDisabled(id);
Repeater1.DataBind();
}
else if (e.CommandName == "Disabled")
{
int id = Convert.ToInt32(e.CommandArgument);
T_UserTableAdapter adapter = new T_UserTableAdapter();
adapter.UpdateEnable(id);
Repeater1.DataBind();//即使更新数据
}
}




这里断点快速监测e就会得一个惊人的发现



得出结论不做判断ItemType的值就会变成Header
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: