• 2017-5-22 Asp.Net内置对象2和RepeaterCommand用法


    (一)内置对象

    1.Application  

      储存在服务端,占用服务器内存,生命周期永久

      所有人访问的都是一个对象

      用法:页面之间额传值

    protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
        }
    
        void Button1_Click(object sender, EventArgs e)
        {
            
            Application["aa"] = TextBox1.Text;
            Response.Redirect("Default2.aspx");
        }

      接收页面:

       Label1.Text = Application["aa"].ToString();

      对象特征:

        存储的物理位置:服务器内存。

         存储的类型限制:任意类型。

         状态使用的范围:整个应用程序。

         存储的大小限制:任意大小。

         生命周期:应用程序开始的时候创建(准确来说是用户第一次请求某URL的时候创建),应用程序结束的时候销毁。

         安全与性能:数据总是存储在服务端,安全性比较高,但不易存储过多数据。

         优缺点与注意事项:检索数据速度快,但缺乏自我管理机制,数据不会自动释放。

      常用的属性和变量:

      

    All 返回全部的Application对象变量到一个对象数组
    AllKeys 返回全部的Application对象变量到一个字符串数组
    Count 取得Application中对象变量的数量
    Item Application变量名称传回的内容值
    Add 新增一个Application变量值
    Clear 清空全部Application变量值
    Get 变量名传回的变量值
    Set 更新Application变量值
    Lock 锁定所有Application变量值
    UnLock 解除锁定Application变量

    2.ViewState

      用于记录页面的一些Value,

      GET:URL?表单元素Name=表单元素Value&表单元素Name=表单元素Value

      webform中微软已经给我们做好了这个对象,自带此功能

    (二)RepeaterCommand事件用法

    1.在要触发的事件中添加属性CommandName="";方便在后台代码中区分点击的事件

    CommandArgument='<%#Eval("ids") %>'   传递的参数,在后台代码通过e.CommandArgument;获取传递的参数

      Repeater里面如果循环控件,控件的ID是会被改变的
      ItemCommand事件 - 任何控件执行提交都来触发这个事件  
      属性 - CommandName=""
      属性 - CommandArgument="主键值"

    后台代码:

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List<Users> ulist = new UsersData().selectAll();
                Repeater1.DataSource = ulist;
                Repeater1.DataBind();
            }
            Repeater1.ItemCommand += Repeater1_ItemCommand;
        }
    
        void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            //触发修改要操作的
            if (e.CommandName == "update")
            {
                Label1.Text = "修改";
    
            }
            //触发删除要操作的
            else if(e.CommandName=="delete")
            {
                Label1.Text = "删除";
            }
        }

     2.Repeater控件中:数据创建的时候执行的事件 ItemCreated,数据绑定的时候执行的事件 ItemDataBound

    ItemCreated - 绑定数据之前,创建行之后      ItemDataBound - 绑定数据之后,执行一遍

    用法:

     protected void Page_Load(object sender, EventArgs e)
        {
            Repeater1.ItemCommand += Repeater1_ItemCommand;
            //数据创建的时候
            Repeater1.ItemCreated += Repeater1_ItemCreated;
            //数据绑定的时候
            Repeater1.ItemDataBound += Repeater1_ItemDataBound;
            if (!IsPostBack)
            {
                List<Users> ulist = new UsersData().selectAll();
                Repeater1.DataSource = ulist;
                Repeater1.DataBind();
            }
           
        }
        //数据在绑定的时候执行,如果性别为女的不显示
        void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            RepeaterItem ri = e.Item;
            Users u = ri.DataItem as Users;
            if (u.Sex == false)
            {
                ri.Visible = false;
            }
        }
  • 相关阅读:
    13张PPT带你了解主动式消息队列处理集群
    TomatoLog-1.1.0实现ILoggerFactory
    番茄日志发布1.0.3版本-增加Kafka支持
    博客园升级有感一点建议
    上车时机已到--.NETCore是适应时代发展的雄鹰利剑
    花5分钟时间来了解一下高性能网关Kong会有意外收获
    Asp.NETCore让FromServices回来
    高速输出-我们戏说缓存
    Consul-template+nginx实现自动负载均衡
    Consul初探-集成ocelot
  • 原文地址:https://www.cnblogs.com/qingnianxu/p/6890320.html
Copyright © 2020-2023  润新知