设计管理一个用户程序,对用户的状态进行管理,当用户状态是启用时整行显示红色。

设计思路:用Repeater遍历每行记录,在操作状态的表格中旋转两个按钮,一个为启用功能,另一个为禁用功能,根据Repeater 的itemDataBind和itemCommand事件来控制即可。

操作步骤:

1.建立数据表T_Stauts,建立三个字段:自增ID,用户名及用户状态(bit类型)。启用时值为true(1),禁用时为false(0)

2.建立强类型数据集(拖动T_Status表到数据集的表单上).添加两个功能语句:禁用功能(DisnableStatusById)

UPDATE T_Status set status=0 where id=@id

启用功能(EnableStatusById):

UPDATE T_Status set status=1 where id=@id

3.在页面上放入ObjectDataSource及repeater,设定它们的一些属性配置并连接上面的数据集。

4.以下为网页的html源码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="itemCommand.aspx.cs" Inherits="Repeater.itemCommand" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.disablecss{background-color:Red;}
</style>
</head>
<body>
<form id="form1" runat="server">
<div> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"
TypeName="Repeater.objsrc.DAL.DataSetStatusTableAdapters.T_StatusTableAdapter">
<InsertParameters>
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="status" Type="Boolean" />
</InsertParameters>
</asp:ObjectDataSource> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1"
onitemcommand="Repeater1_ItemCommand" onitemdatabound="Repeater1_ItemDataBound">
<HeaderTemplate><table border="1"><th width="180">用户名</th><th width="180">操作状态</th></HeaderTemplate>
<ItemTemplate>
<tr id="tr1" runat="Server">
<td><%#Eval("name") %></td>
<td>
<asp:Button id="enablebtn" Text="启用" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="enablestatus" />
<asp:Button id="disnablebtn" Text="禁用" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="disnablestatus" OnClientClick="return confirm('您真的要禁用吗?')" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater> </div>
</form>
</body>
</html>

5.当状态为启动时显示红色,禁用按钮可见,启用按钮不可见,反之亦然。此代码写在Repeater的itemDataBound中。

 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
var row = (Repeater.objsrc.DAL.DataSetStatus.T_StatusRow)drv.Row;
Button enablebtn = (Button)e.Item.FindControl("enablebtn");
Button disnablebtn = (Button)e.Item.FindControl("disnablebtn");
if (row.status) //启用状态
{
enablebtn.Visible = false;
disnablebtn.Visible = true;
}
else if (!row.status) //禁用状态
{
enablebtn.Visible = true;
disnablebtn.Visible = false;
HtmlTableRow tr = (HtmlTableRow)e.Item.FindControl("tr1"); //对整行描红,用runat="server"才能访问
tr.Attributes["class"] = "disablecss"; }
else
{
throw new Exception("状态不对");
}
} }

6.当点击禁用或启用按钮时要更新数据表并重新绑定数据,主要写在Repeater的itemCommand事件中

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
T_StatusTableAdapter adapter = new T_StatusTableAdapter();
int id=Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "enablestatus")
{
adapter.EnableStatusById(id);
}
else if (e.CommandName == "disnablestatus")
{
adapter.DisnableStatusById(id);
}
Repeater1.DataBind();
}
}

7.显示截图

4. Repeater 实例2的更多相关文章

  1. asp:Repeater实例备忘

    1.前置部分 <asp:Repeater ID="rptPlanNo" runat="server" OnItemDataBound="rptP ...

  2. Repeater实例应用

    在实际开发过程中,涉及到数据绑定,分页,以及一对多展示数据时,遇到这样的需求我们怎么解决呢?下面以帖子展示来逐一说明. 帖子主要由两部分组成,第一部分是发帖人的原创内容部分,第二部分是用户评论部分,这 ...

  3. .NET C#基础(3):事件 - 不便处理的事就委托出去

    0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍.NET中事件的相关概念.基本知识及其使用方法 1. 阅读基础   理解C#基本语法(方法的声明.方法的调用.类的定义) 2. 从 ...

  4. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

  5. {Repeater控件} Repeater控件的用法流程及实例

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

  6. Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改

    一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用R ...

  7. Repeater用法

    Repeater用法: 使用Repeater可以绘制表头.表内.表尾比较复杂的表格,如以下实例: <asp:Repeater ID="Repeater1" runat=&qu ...

  8. Repeater控件使用中的一些小问题

    网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了... 自己摸索的, ...

  9. .NET运用AJAX 总结及其实例

    1.AJAX简介 (1.没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,比如实现显示服务器的时间.每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的 ...

随机推荐

  1. DIV+CSS区块框浮动设计

    在页面布局的时候,能够用绝对定位来实现,可是因为调整某个区块框时其它区块的位置不会对应的改变,所以这并非布局的首选方式.可是使用浮动的区块框能够向左或向右移动,直到它的外边缘碰到包括它区块的边框或还有 ...

  2. android 13 5种click事件不同实现方式 比较

    第一种:不便于管理. <Button android:id="@+id/btn_Gridlayout" android:layout_width="match_pa ...

  3. spring mvc DispatcherServlet详解之四---视图渲染过程

    整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的最后一步:视图渲染.视图渲染的过程是在获取到ModelAndView后的过程 ...

  4. Android(java)学习笔记208:Android中操作JSON数据(Json和Jsonarray)

    1.Json 和 Xml       JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  5. Python获取Origin官网视频

    程序说明:最近学习origin,看到官网有入门视频(http://www.originlab.com/index.aspx?go=SUPPORT/VideoTutorials),看着挺多的,就用pyt ...

  6. DataView操作DataTable

    1.DataView筛选数据 //假设有一个DataTable数据 DataTable dt = new DataTable(); //转成DefaultView DataView dv = dt.D ...

  7. Web性能压力测试之Webbench使用详解

    Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发.Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同 ...

  8. ios地图小例子和手势的使用 供大家参考一下呦

    最近做了一个小例子 做点笔记 供刚入职场的菜鸟学习,也供自己记忆. 目标:在地图上加上标记  同时复习一下手势的使用 效果图: 具体代码 导入框架:MapKit.framework 创建一个新类 继承 ...

  9. Java study 2:The note of studying Socket which based TCP

    TCP concept: 传输控制协议(Transmission Control Protocol, TCP)是一种面向连接(连接导向)的.可靠的.基于字节流的运输层(Transport layer) ...

  10. LA 6476 Outpost Navigation (DFS+剪枝)

    题目链接 Solution DFS+剪枝 对于一个走过点k,如果有必要再走一次,那么一定是走过k后在k点的最大弹药数增加了.否则一定没有必要再走. 记录经过每个点的最大弹药数,对dfs进行剪枝. #i ...