您的位置:首页 > 其它

【总结】——Repeater控件详细应用

2011-03-19 12:03 232 查看
Repeater控件应用详解

1 在App_Data文件夹下建立一个数据库文件.mdf,创建一张新表,往里面灌一些数据;

2 新建一个DAL文件夹,添加数据集文件DataSet,利用强类型Dataset实现数据与页面的分离;

3 拖一个ObjectDataSource控件,选择数据源;

4 拽一个Repeater控件,选择数据源,排班;

切换到后台.aspx代码

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1"
onitemdatabound="Repeater1_ItemDataBound"
onitemcommand="Repeater1_ItemCommand">
<HeaderTemplate><table><tr><td>用户名</td><td>状态</td><td>操作</td></tr></HeaderTemplate>
<ItemTemplate>
<tr runat="server" id="trRow">
<td><%#Eval("UserName") %></td>
<td><%#Eval("Status") %></td>
<td>
<asp:Button runat="server" ID="btnEnabled" CommandName="Enabled" CommandArgument='<%#Eval("Id") %>' Text="启用" />
<asp:Button runat="server" ID="btnDisabled" CommandName="Disabled" CommandArgument='<%#Eval("Id") %>' Text="禁用" OnClientClick="return confirm('真的要禁用吗?')" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>


5 Repeater有ItemDataBound和ItemCommand事件;

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//只处理Item类型,对于Header等类型则不处理
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{//没有给AlternatingItem,但是偶数行也是e.Item.ItemType=AlternatingItem
DataRowView rowView = (DataRowView)e.Item.DataItem;
var userRow = (ASP.NET高级.DAL.DataSetUsers.T_UsersRow)rowView.Row;
if (userRow.Status == "禁用")
{
//1 把这行高亮显示
HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl("trRow");
trRow.Attributes["class"] = "disabledRow";

Button btnEnabled = (Button)e.Item.FindControl("btnEnabled");
Button btnDisabled = (Button)e.Item.FindControl("btnDisabled");

//2 显示启用按钮
btnEnabled.Visible = true;
//3 不显示禁用按钮
btnDisabled.Visible = false;
}
else if (userRow.Status == "启用")
{
//1 把这行普通显示
HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl("trRow");
trRow.Attributes["class"] = "";//空的

Button btnEnabled = (Button)e.Item.FindControl("btnEnabled");
Button btnDisabled = (Button)e.Item.FindControl("btnDisabled");

//2 不显示启用按钮
btnEnabled.Visible = false;
//3 显示禁用按钮
btnDisabled.Visible = true;

}
else//写严谨的程序,可以尽早的发现问题
{
throw new Exception("非法的status状态");
}
}

}

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName=="Enabled")//启用
{
long id = Convert.ToInt64(e.CommandArgument);
T_UsersTableAdapter adapter = new T_UsersTableAdapter();
adapter.EnableUserById(id);
Repeater1.DataBind();//Don't forget!!!
}
else if (e.CommandName=="Disabled")//禁用
{
long id = Convert.ToInt64(e.CommandArgument);
T_UsersTableAdapter adapter = new T_UsersTableAdapter();
adapter.DisableUserById(id);
Repeater1.DataBind();//Don't forget!!!
}
}


Over. . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: