歡迎大家來討論,修改,一定虛心接受。

1.為什麼使用Repeater控件?

  關於把從數據庫讀取的數據綁定到前台頁面,我們可以使用DataGrid、DataGridView以及Repeater來佈局,三者均可以直接綁定DataTable中的字段,但是對於特殊的表格,如需要跨行或跨列顯示的數據,則需要重畫一個table,然後再綁定數據。

2.Repeater控件之好處

  我們可以自由的定義Table的表頭、表身和表尾。

3.Repeater控件一些基礎設定

  例:以下例子展示了如何對Repeater控件進行綁定,并實現在table中實現編輯和更新數據行的操作

html端代碼:

<asp:Repeater runat="server" ID="reportRepeater" OnItemCommand="reportRepeater_ItemCommand"
OnItemDataBound="reportRepeater_ItemDataBound">
<HeaderTemplate>

<table>

<tr><th></th>

<th>用戶ID</th>

<th>用戶名</th>

<th>籍貫</th>

<th>民族</th></tr>

</HeaderTemplate>

<ItemTemplate>

<asp:Panel ID="plItem" runat="server">

<tr><td><asp:ImageButton ID="imgInvEdit" CommandName="EDIT" ToolTip="編輯" CommandArgument='<%#Eval("userID")%>'

ImageUrl="../Images/edit1.gif" runat="server" Visible="false" />

<asp:ImageButton ID="imgInvDelete" CommandName="DELETE" ToolTip="刪除" CommandArgument='<%#Eval("userID")%>'
ImageUrl="../Images/delete.gif" runat="server" Visible="false" /></td>

<td><%#Eval("userID")%></td>

<td><%#Eval("username")%></td>

<td><%#Eval("birthplace")%></td>

<td><%Eval("nationality")%></td><tr>

</asp:Panel>

<asp:Panel ID="plItem" runat="server">

<tr><td><asp:ImageButton ID="imgInvUpdate" CommandName="UPDATE" ToolTip="更新" CommandArgument='<%#Eval("userID")%>'

ImageUrl="../Images/update.gif" runat="server" Visible="false" />

<asp:ImageButton ID="imgInvCancel" CommandName="CANCEL" ToolTip="取消" CommandArgument='<%#Eval("userID")%>'
ImageUrl="../Images/cancel.gif" runat="server" Visible="false" /></td>

<td><%#Eval("userID")%></td>

<td><%#Eval("username")%></td>

<td><%#Eval("birthplace")%></td>

<td><%Eval("nationality")%></td><tr>

</asp:Panel>

</ItemTemplate>

<FooterTemplate>

</table>

</FooterTemplate>

C#後端代碼:

protected void Page_Load(object sender, EventArgs e)
{

if(Page.IsPostBack)

{

BindData();

}

}

protected void BindData()

{

string sql = "select * from user";

DAL.DAL dal = new DAL.DAL();

DataTable dt = dal.ExecuteDataSet(Properties.Settings.Default.DBWF, sql).Tables[0];

reportRepeater.DataSource = dt;

reportRepeater.DataBind();

}

protected void reportRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)

{

switch (e.CommandName.Trim().ToUpper())
{
case "EDIT":
{
id = e.CommandArgument.ToString();
break;
}
case "UPDATE":

{

//更新數據庫

break;

}

case "CANCEL":

{

id="";

break;

}

case "DELETE":

{

//從數據庫刪除

break;

}

//數據綁定

BindData();

}

protected void reportRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)//Item綁定時可以在此做一些操作

{

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//
{

System.Data.DataRowView record = (System.Data.DataRowView)e.Item.DataItem;
string userID= record["userID"].ToString();
if (userID.Equals(id))//當點擊不同的按鈕時對Pannel控件進行隱藏和顯示,達到在table內編輯行的效果
{
((Panel)e.Item.FindControl("plItem")).Visible = false;
((Panel)e.Item.FindControl("plEdit")).Visible = true;
}
else
{
((Panel)e.Item.FindControl("plItem")).Visible = true;
((Panel)e.Item.FindControl("plEdit")).Visible = false;
}

}

}

C#控件之Repeater控件使用的更多相关文章

  1. wenfrom的简单控件和repeater控件

    简单控件 lable  转换成<span>标记 literal   空的  什么也没转换 Literal.Text=<script>alter('你好');</scrip ...

  2. Repeater 控件

    Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局.当网页 ...

  3. asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  4. 使用Repeater控件实现三层嵌套以及分页效果

    PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范  请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...

  5. 十三、asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  6. asp.net学习之 数据绑定控件--表格绑定控件

    原文:asp.net学习之 数据绑定控件--表格绑定控件     数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...

  7. ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作

    说明:由于Repeater控件是动态绑定,通过Id获取数据只能默认获取第一行: 1.对Repeater中div设置样式 2.通过$(".css").each(function(){ ...

  8. WebForm(四)——Repeater控件(重要、好用)

    Repeater控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.             Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. ...

  9. Repeater控件用法

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx. ...

随机推荐

  1. Python学习笔记九:装饰器,生成器,迭代器

    装饰器 本质是函数,装饰其他函数,为其他函数添加附加功能 原则: 1不修改原函数的源代码 2不修改原函数的调用方式 知识储备: 1函数即变量 使用门牌号的例子说明函数,调用方式与变量一致 2高阶函数 ...

  2. PTA基础编程题目集6-5求自定类型元素的最大值 (函数题)

    原题目: 本题要求实现一个函数,求N个集合元素S[]中的最大值,其中集合元素的类型为自定义的ElementType. 函数接口定义: ElementType Max( ElementType S[], ...

  3. 【 C 】高级字符串查找之 strspn 和 strcspn 的思考

    我的CSDN博客 strspn 这个库函数是真的很难理解,看了很多中文描述,反正都是不知所云,给出一系列的例子,结果也是让我瞠目结舌,荒唐.荒谬.荒诞! 特此记录理解过程,最后竟然是百度百科让我明白了 ...

  4. hash环/consistent hashing一致性哈希算法

        一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的 ...

  5. 教你解决Xshell用SSH连接ubuntu总掉线该

    使用Xshell 5中的SSH连接ubuntu总是掉线,搞的自己束手无策,本集小编整理了一下原因及解决方法,现晒出来和大家分享一下,希望可以帮助大家. 1. Xshell客户端设置 将Keep Ali ...

  6. 20155202张旭 2016-2017-2 《Java程序设计》第2周学习总结

    20155202张旭 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 第一,二章知识小节: git log 命令来查看 :提交历史 查看当前所处位置: pwd ...

  7. 【LG3233】[HNOI2014]世界树

    题面 洛谷 题解 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include < ...

  8. Eclipse各个版本

    Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会. Ec ...

  9. 一个web应用的诞生(5)--数据表单

    下面把角色分为两种,普通用户和管理员用户,至少对于普通用户来说,直接修改DB是不可取的,要有用户注册的功能,下面就开始进行用户注册的开发. 用户表 首先要想好用户注册的时候需要提供什么信息:用户名.密 ...

  10. python根据正则表达式的简单爬虫

    今天根据正则表达式简单的爬了一下大众点评,把北京的美食爬了爬,(店铺名,人均消费,地址) import re import urllib.request from urllib.request imp ...