Repeater控件使用中的一些小问题
网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了...
自己摸索的,很可能有不正确的地方,望前辈指正。
1. Repeater控件绑定可以是数组,比如某个类的实例数组
//前台代码
<asp:Repeater ID="repeater" runat="server"
onitemcommand="repeater_ItemCommand" >
<HeaderTemplate>
<table><thead><tr>
<td>ID</td><td>Name</td><td>修改</td><td>删除</td>
</tr></thead>
</HeaderTemplate>
<ItemTemplate>
<asp:Panel ID="pnl_display" runat="server" Visible="true">
<tr>
<td><%#Eval("PKID") %></td>
<td><a href='NewsSmallClassManage.aspx?bgid=<%#Eval("PKID") %>'><%#Eval("FirstLevelName")%></a></td>
<td><asp:LinkButton ID="lbtnModify" CommandName="edit" runat="server" Text="修改" ></asp:LinkButton></td>
<td><asp:LinkButton ID="lbtnDelete" CommandName="delete" CommandArgument='<%#Eval("PKID") %>' runat="server" Text="删除" OnClientClick='return confirm("确定要删除该大类吗?");'></asp:LinkButton></td>
</tr>
</asp:Panel>
<asp:Panel ID="pnl_edit" runat="server" Visible="false">
<tr>
<td><%#Eval("PKID") %></td>
<td><asp:TextBox ID="txtBigClassName" runat="server" Text='<%#Eval("FirstLevelName") %>'></asp:TextBox></td>
<td><asp:LinkButton ID="lbtUpdate" CommandName="update" CommandArgument='<%#Eval("FirstLevelName") %>' runat="server" Text="更新"></asp:LinkButton></td>
<td><asp:LinkButton ID="lbtCancel" CommandName="cancel" runat="server" Text="取消"></asp:LinkButton></td>
</tr>
</asp:Panel>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
//后台代码
NewsClass[] array = IS.Business.NewsClassBLL.GetFirstLevelClass();
repeater.DataSource = array;
repeater.DataBind();
2. 使用CommondArgument向后台传递参数,在ItemCommand事件中处理控件内按钮的命令相应
protected void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
switch (e.CommandName)
{
case "edit":
((Panel)e.Item.FindControl("pnl_display")).Visible = false;
((Panel)e.Item.FindControl("pnl_edit")).Visible = true;
break; case "cancel":
((Panel)e.Item.FindControl("pnl_display")).Visible = true;
((Panel)e.Item.FindControl("pnl_edit")).Visible = false;
break; case "delete":
try
{
IS.Business.NewsClassBLL.Delete(int.Parse(e.CommandArgument.ToString()));
this.bindData();
}
catch (Exception ex)
{
Functions.AlertMsg(ex.Message, Page);
}
break; case "update":
string oldname = e.CommandArgument.ToString();
string newname = ((TextBox)e.Item.FindControl("txtBigClassName")).Text;
try
{
IS.Business.NewsClassBLL.RenameFirstLevelClassName(oldname, newname);
this.bindData();
}
catch (Exception ex)
{
Functions.AlertMsg(ex.Message, Page);
}
break; default:
break;
}
}
3. 两个Panel用来实现类似就地编辑的功能。好像用PlaceHolder更好一点,不会生成额外的html标签。
4. 被绑定的类里面还有一个其他类的实例作为其属性成员,绑定其属性成员的某个属性时使用:
<%#DataBinder.Eval(((IS.Model.Exhibition)Container.DataItem).Area,"Name") %>
5. 加个行号:
<%#Container.ItemIndex+ %>
6. 格式化输入某些变量,以时间为例:
<%#DataBinder.Eval(Container.DataItem,"StartTime","{0:yyyy-MM-dd}") %>
Repeater控件使用中的一些小问题的更多相关文章
- ASP.NET Repeater控件实现简单分页
早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...
- Repeater控件的分隔线
在Repeater控件中,很容易实现在行与行之间使用分隔线.因为此控件有内置的SeparatorTemplate模版.举个例子吧: 运行时,可以看到效果: 说句实在的话,Insus.NET做一条水平线 ...
- ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作
说明:由于Repeater控件是动态绑定,通过Id获取数据只能默认获取第一行: 1.对Repeater中div设置样式 2.通过$(".css").each(function(){ ...
- Repeater 控件
Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局.当网页 ...
- WebForm(四)——Repeater控件(重要、好用)
Repeater控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行. Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. ...
- Repeater控件用法
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx. ...
- Repeater控件 ---表格展示数据
简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repea ...
- Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...
- asp.net学习之Repeater控件
asp.net学习之Repeater控件 文章摘自:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html Repeater控件和D ...
随机推荐
- IC卡复位应答ATR解析
输入的是ATR,通过解析输出TA.TB.TC.TD的信息. 似乎没有容错处理,~~~~(>_<)~~~~ #include <stdio.h> #define TA_BIT ( ...
- 【 D3.js 入门系列 --- 5.1 】 做一个带坐标轴和标签的图表
前面几节讲解了图标.坐标轴.比例等等,这一节整合这些内容做一个实用的图表.结果图如下: 代码如下所示: <html> <head> <meta charset=" ...
- linux下软件安装与升级
待续 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade
- Git标签和别名管理
一.Git标签管理 标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态,也可以随时恢复到该状态 例如给master打一个v1.0的标签 先切换到master分支上去git checkou ...
- 素数方阵的工程ing
2016 12 12 16 12 开始 2016 12 13 17 30 还没开打 2017 1 3 ..... 一星期前貌似打完了... 如下 #include<iostream> ...
- 王爽<汇编语言>实验十
实验十 3.数值显示(以下程序附带测试程序) ;名称: dtoc ;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾 ;参数: (ax)=dword型数据低字 ; (dx)=dw ...
- 3d数学总结帖
3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...
- javascript中call函数与apply
javascript中的call方法使当前对象可以调用另一个对象的方法,即改变this的指向内容 var first_object = { num: 42 }; var second_object = ...
- 反人类的java
- Linux下搭建VPN服务器(CentOS、pptp)转
先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GR ...