C#学习笔记(三)---------Repeater的一些常规用法

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中的分页、编辑、删除操作。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值