• webform(内置对象)


    一、内置对象

    (一)Response - 响应请求对象
    1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。
    2.方法
    (1)Redirect
    用法:Response.Redirect("url")
    作用是在服务器端重定向于另一个网页
    (2)Write
    功能:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等
    用法:Response.Write("")输入字符串在界面里显示,输入<script>alert('')</script>弹出对话框
    (二)Request - 获取请求对象
    Request["key"] - 默认返回的就是string类型
    来获取传递过来的值,Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

    (三)Session  相对全局对象

    在不同的浏览器之间传值,像银行之类的网站为了安全把用户名密码保存在session里面。每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的。

    赋值:Session["key"] = 值;

    在另一个网页取值:首先先要判断Session["key"] 是不是null,不是的话取值,否则定向到原网页

     string a = Session["key"];

    优缺点:

    Session是非常安全的,因为它存在于服务器的内存中,取数据也是最快的;但是,Session不要滥用,因为会造成服务器内存溢出,导致服务器崩溃
    Session里面不要放大东西,如果不用那么就会造成资源浪费。

    Session生命周期:20分钟

    (四)Cookies

    赋值:   Response.Cookies["key"].Value =值;

    取值: Request.Cookies["key"].Value;

    与Session比较:

    相同点:每一台电脑访问服务器,都会是独立的一套session或者Cookies,key值都一样,但是内容都是不一样的。

    不同点:●Session的保存位置是保存在服务器内存上,Cookies保存在用户硬盘上

               ●Session没有持久的,在不对页面进行任何操作的情况下,它的保存周期就是20分钟;Cookies可以持久也可不持久,取决于用户

    设置生命周期: Response.Cookies["key"].Expires = DateTime.Now.AddDays(7);//保存7天

    问题:如果传的是中文会乱码

    解决方法:

    string a = HttpUtility.UrlEncode(值, System.Text.Encoding.GetEncoding("utf-8"));
    Response.Cookies["key"].Value = a;
    Response.Redirect("Default2.aspx");
    if (Request.Cookies["user"] != null)          解码
    {
    string a = HttpUtility.UrlDecode(Request.Cookies["key"].Value, System.Text.Encoding.GetEncoding("utf-8"));
    Label1.Text = a;
    }

    (五)Application

    它是全局对象,全局只有这一个对象
    只要被创建出来,所有人取的值都是一样的
    生命周期:永久
    保存位置:服务端

    赋值:Application["key"]=值;
    取值:Application("key");

    (六)ViewState(了解)

    理解成为病例

    类似于中间过程,由于网页的不固定性,点击按钮会刷新,控件赋得值借助iewstate保存,把刷新前的值保存成专门代码。刷新后再赋值给控件

    二、Repeater的Command操作

    1、ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件

                                        后台创建:在Page_Load中  Repeater1.ItemCommand +=  ,然后双击Tab键创建

    2、CommandName : 判断点击的是什么按钮,

                                    后台调用:e.CommandName

    3、CommandArgument : 触发事件所传递过来的主键值数据,放在这里面 界面值绑定时要用  单引号 !!!!!! 

                                          后台调用:e.CommandArgument 

    已删除为例

    复制代码
       <asp:Button ID="Button1" CommandName="Delete" CommandArgument=<%#Eval("UserName") %> runat="server" Text="删除" />  //前台代码
    --------------------------------------------------------------------------------------
    后台代码
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource = new UsersData().Select();
                Repeater1.DataBind();
            }
    
            Repeater1.ItemCommand += Repeater1_ItemCommand;
        }
    
        void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                new UsersData().Delete(e.CommandArgument.ToString());
            }
            
            }
    
    
        }
  • 相关阅读:
    ECS内网穿透
    设置服务器ssh会话时间
    VScode插件
    Linux拷贝U盘文件(命令行)
    打开IDM下载视频时弹出防火墙阻止下载,解决方案
    如何将jmeter.bat命令文件固定到任务栏
    jmeter安装教程
    安装JDK8.0(JDK1.8) & 环境变量配置 & idea中配置java路径
    教你不用任何第三方软件实现任务栏居中
    [Unity优化]gc03:代码优化
  • 原文地址:https://www.cnblogs.com/1711643472qq/p/6179287.html
Copyright © 2020-2023  润新知