C#学习笔记(三)---------Repeater的一些常规用法
2013-04-24 11:17
429 查看
Repeater和Gridview前台显示行号的方法
Repeater:<%# Container.ItemIndex %> <%# ((DataRowView)Container.DataItem)["XXXXXX"] %>
GridView:<%# Container.DateItemIndex%>
获取子控件进行编程处理
获取子控件有两种方法可用:
1,将Container作为参数传到后台函数中。
例如:<ItemTemplate><%#m_checkbox = (CheckBox)GetCheckBox(Container)%></ItemTemplate>
public CheckBox GetCheckBox(Control container)
{
return (CheckBox)container.FindControl("DontrolID");
}
2,利用postback事件---ItemCommand来实现
protected void Repeater1_ItemCommand(object source,RepeaterCommandEventArgs e)
{
if(e.CommandName=="checkbox")//如果未指定CommandName属性则也可以用CommandSourc.Text属性。
CheckBox a = (CheckBox)e.Item.FindControl("ControlID");
//处理a控件。
}
动态定制实现样式呈现
在生成HTML的函数中可以使用DataBinder.GetPropertyValue(Container.DataItem,"XXX");来得到指定数据对象(即该Container.DataItem)的指定属性的值。但前提是该属性需要申明为public并且至少有get访问器。否则将不起作用(例如该属性实现为一个字段)。举例:
<ItemTemplate><%# GetStyleForItem(Container)%></ItemTemplate> public string GetStyleForItem(Control dataObj)//public 是必须的 { string value = DataBinder.GetPropertyValue(dataObj.DataItem,"XXX"); }
Repeater中时间显示格式的更改和变换
<%# DataBinder.Eval(Container.DataItem, "date").ToString().Substring (0,4) +"年"+DataBinder.Eval(Container.DataItem, "date").ToString().Substring (4,2) +"月"+DataBinder.Eval(Container.DataItem, "date").ToString().Substring (7,2) +"日"+DataBinder.Eval(Container.DataItem, "date").ToString().Substring (10,8)%>
Repeater中使用HtmlCode解码
<%# Server.HtmlDecode(DataBinder.Eval(Container.DataItem, "idea").ToString()) %>
Repeater中分页绑定时使用
//使用适配器 //startRecord起始位置 //maxRecord最大记录数,也就是每页条数 string cmdText = "SQL语句" OracleConnection conn = new OracleConnection(connectionString); conn.Open(); OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = cmdText; cmd.CommandType = CommandType.Text; OracleDataAdapter dat = new OracleDataAdatper(cmd); DataTable dt = new DataTable(); dat.Fill(startRecord, maxRecord, dt); repeaterData.DataSource = dt; repeaterData.DataBind();
Repeater中的CheckBox选取使用js技术
function CheckAll(obj){ var id = obj.id; if(id == "allCheck"){ if(obj.checked){ SelectAllCheckBox(true); }else{ SelectAllCheckBox(false); } }else{ if(obj.checked == false){ document.all("allCheck").checked = false; }else{ var flag = IsAllChecked(); if(flag){ // 全选框被选中 document.all("allCheck").checked = true; } } } }
function SelectAllCheckBox(checked) { // 数据条数隐藏变量 var lenObj = document.all("DataCount"); var len = parseInt(lenObj.value,10); for (var i = 0; i < len; i++) { var tempId = i; // 小于10时,前面加"0"补齐 if(i < 10) { tempId = "0" + i; } // 取得复选框 var checkBox = document.all("repeaterData_ctl" + tempId + "_checkBox"); if (checkBox!=null && checkBox.type == "checkbox" ) { // 设定状态 checkBox.checked = checked; } } } function IsAllChecked() { var flag = true; // 数据条数隐藏变量 var lenObj = document.all("DataCount"); var len = parseInt(lenObj.value,10); for (var i = 0; i < len; i++) { var tempId = i; if(i < 10) { tempId = "0" + i; } var checkBox = document.all("repeaterData_ctl" + tempId + "_checkBox"); if (checkBox!=null && checkBox.type == "checkbox" ) { // 如果没被选中 if(checkBox.checked == false) { flag = false; } } } return flag; }
在使用Repeater时,注意使用JS取repeater中控件时要使用repeater给控件生成的ID ,控件本身ID不可用,一般是查询不到的。而在使用GridView时,选择其中控件的方法可以直接使用查找控件ID,但是GridView在数据控件中属于最简单操作的一种,但是针对一它的可用性也是最差的,它在使用的时候使用较多的ViewState记录大量数据,如果想要效果和速度,那么关闭ViewState,但是这样就不能使用GridView中的分页、编辑、删除操作。
相关文章推荐
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法
- C#学习笔记- 随机函数Random()的用法详解
- C#学习笔记之——一些练习(包含了一些out的使用,string的使用,StringBuilder的使用,类的属性,最大公约数的求法,还有英雄,武器类的设置)
- 我的Qt学习笔记 2 QString的一些用法总结(1 section, split 函数)
- 【学习笔记】C#Json和Bson序列化中遇到的一些问题
- 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起
- C#学习笔记之——一些应用
- DropDownList 用法的一些学习总结 分类: c#
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同
- 学习C#的一些笔记(关于继承与多态,static关键字)
- 黑马程序员之C#学习笔记: new关键字的三种用法
- 黑马程序员之C#学习笔记: C#中Tostring参数机用法详解
- C#学习笔记之六 类定义中static关键字的用法暨C#中静态变量的意义与使用
- C# in Depth Third Edition 学习笔记-- C#2的一些特性
- C#回顾学习笔记三十七:Hashtable哈希表的用法
- C#学习笔记: 数据类型的一些说明
- C#学习笔记10:Try-catch的用法和引用类型、值类型整理
- C#学习笔记--常规知识点(收集中...)
- C#的一些学习笔记