• 2017-5-19 复合控件 ispostback 跨页面传值


    (一)复合控件

    1.RadioButtonList   每一行数据都是一个ListItem

    属性:RepeatDirection --- 排列方式

        RepeatColumns --- 每一行中需要展示的个数

        RepeatLayout  --- 页面中生成什么样的代码

        Enable  --- 是否启用

        selected  --- 是否被选中

        Text  ---  显示的内容   Value  --- 给系统看的

    赋值:

    复制代码
     protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false) 
            {
                List<Nation> ulist = new NationData().select();
                foreach(Nation uu in ulist)
                {
                    ListItem li = new ListItem(uu.NationName, uu.NationCode);
                    RadioButtonList1.Items.Add(li);
                }
            }
            Button1.Click += Button1_Click;
    
        }
    复制代码

    取值:(页面上有一个按钮,点击按钮在lable中显示选中的内容)

     void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text= RadioButtonList1.SelectedItem.Text//显示的内容
          +RadioButtonList1.SelectedItem.Value;//给数据库看的内容 }

    加载的时候默认选中的按钮:

    View Code

    2.CheckBoxList  多选按钮

    多选取值:

    复制代码
    void Button1_Click(object sender, EventArgs e)
        {
            string a = "";
            foreach(ListItem li in CheckBoxList1.Items)
            {
                if (li.Selected) 
                {
                    a += li.Text;
                }
            }
            Label1.Text = a;
        }
    复制代码

     赋值和RadioButtonList一样,都是遍历数组,还可以用数据源进行绑定

    数据源绑定数据:

     CheckBoxList1.DataSource = ulist;
                CheckBoxList1.DataTextField = "NationName";
                CheckBoxList1.DataValueField = "NationCode";
                CheckBoxList1.DataBind();

    点击复选框的时候,lable显示点击的内容:在checkbox中写事件SelectedIndexChange,一定要加入自动提交属性AutoPostBback="true";

    复制代码
    //改变事件代码:
      if (CheckBoxList1.SelectedIndex >= 0)
                Label1.Text = CheckBoxList1.SelectedItem.Text;
            else
                Label1.Text = "";
    //checkbox中的代码
     <asp:CheckBoxList AutoPostBack="true" ID="CheckBoxList1" runat="server" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged"></asp:CheckBoxList>
    复制代码

     3.DropDownList  下拉列表

    赋值:和复合控件checkboxlist,radiobuttonlist一样

    复制代码
     protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false) 
            {
                List<Nation> ulist = new NationData().select();
                CheckBoxList1.DataSource = ulist;
                CheckBoxList1.DataTextField = "NationName";
                CheckBoxList1.DataValueField = "NationCode";
                CheckBoxList1.DataBind();
                ListItem la = new ListItem("==请选择==","-1");
                DropDownList1.Items.Add(la);
                foreach (Nation uu in ulist)
                {
                    ListItem li = new ListItem(uu.NationName, uu.NationCode);
                    DropDownList1.Items.Add(li);
                }
    
            }
            Button1.Click += Button1_Click;
    
        }
    复制代码

    取值:

    void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = DropDownList1.SelectedItem.Text;
           
        }

    4.ListBox   列表控件

    属性:selectionmode设置是否多选,multiple多选,single单选

    取值,赋值和控件checkboxlist,radiobuttonlist,dropdownlist一样

    (二)ispostback

    绑定数据出现数据选项无法更改
    page_load事件再每一次页面刷新的时候都会执行
    就会把数据重新绑定一次,再去执行按钮事件
    判断页面是否是第一次加载还是响应回发

    if(!ispostback)
    {
    只需要在页面第一次加载的时候才执行的代码写到这里面
    注意95%的代码都要写到这里面
    !事件委托不能写到这里面
    }

    (三)跨页面传值

    1.页面跳转:在本窗口中

    Response.Redirect("文件路径");

    2.页面传值:传递的值可以是很多个,不固定的

      用的是QueryString   --- url传值,或者地址栏传值

      接在那个网址后面,就给哪个传值,

      样式:地址?key=value&key=value,key就相当于是一个变量,名称,用来存贮的

      接收:string value = Request["key"];

    例子: 

         Response.Redirect("aaa.aspa?a="+TextBox1.Text);

    aaa页面中的接收,并且在label中显示:string aa = Request["a"]; label1.text=aa;

    3.打开新页面窗口:

     Response.Write("<script>window.open('Default2.aspx','_blank');</script>");

  • 相关阅读:
    关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service
    转载-logbock.xml
    sql学习指南--持续更新
    转载-有时间担心中年危机,还不如用忧虑的时间来提升自己——再论程序员该如何避免所谓的中年危机
    转载-缓存
    转载-SpringBoot开发案例之整合日志管理
    转载-Spring Boot应用监控实战
    乐观锁 与 悲观锁
    独占锁 和 共享锁
    自旋锁
  • 原文地址:https://www.cnblogs.com/changxiaosen/p/6943232.html
Copyright © 2020-2023  润新知