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 ...
随机推荐
- 105 董婷婷 第一次Sprint总结
总结: 经过一个多星期,第一次Sprint在今天结束了,在这次Sprint中我们的工作主要做的是对项目的构建及各种界面的设计和完善,一些比较具体的功能还没有实现.在这次Sprint中因为有上学期合作的 ...
- HDU 5446 中国剩余定理+lucas
Unknown Treasure Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- 破解版windows 7(旗舰版)下安装并使用vagrant统一开发环境
参考百度经验:http://jingyan.baidu.com/article/5553fa82c158bb65a23934be.html,事先对win7进行破解后的三个文件进行还原,否则会导致vir ...
- java封装性之private
public class TestDemo{ public static void main(String args[]){ Person perA= new Person(); perA.setNa ...
- 享元模式(Flyweight Pattern)
一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非 ...
- jquery $.ajax()方法
$(function(){ $('#send').click(function(){ $.ajax({ /* *type:要求为String类型的参数,请求方式(post或get)默认为get. *注 ...
- Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- [THINKING IN JAVA]操作符
3 操作符 3.1 static import 可以static import静态方法和变量,这样就可以在不写类名的前提下调用类中的静态方法和变量: package com.chenlei.study ...
- 有关默认相机转VR相机
呃...15年开篇~ 去年想写一个有关默认相机转VR相机的脚本,当时没写完,今天不小心翻到并写完了,而且思路也和原来完全不一样了,增加了是否删除原相机与是否转换所选相机的选项. 由于国内VR版本比较混 ...
- iOS_地图之显示附近微博
1.首先需要新建一个MKMapView地图对象,在storyBoard中拖拽一个,在工程中导入MapKit.framework: 2.遵守MKMapViewDelegate协议,设定显示地 ...