zoukankan      html  css  js  c++  java
  • 关于Dropdownlist 与 autopostBack 问题多级联动 例 省/市/区

    1、Dropdownlist与数据库绑定。

    string sql_subject="select subject from tt_subject";
                OleDbConnection Conn=db.okConn();
                Conn.Open();
                OleDbCommand cmd = new OleDbCommand(sql_subject, Conn); //这里从数据库中读入到Dropdownlist
                OleDbDataReader reader = cmd.ExecuteReader();
                Dropdownlist9.DataSource = reader;
                Dropdownlist9 .DataTextField ="subject";//字段
                Dropdownlist9.DataValueField = "subject";
                Dropdownlist9 .DataBind ();

    2、多个Dropdownlist选定的联动:如 省 市 区的选择情况,就要联动

    如果有两个Dropdownlist,在动态绑定数据的情况下,则第一个autopost为true;看另个Dropdownlist的联动例子,
    pageload
    {
     if (!IsPostBack)
        { 
                OleDbConnection conn = data.Acce_Conn();
            conn.Open();
            OleDbCommand cmd = new OleDbCommand("select distinct zhen from db",conn);//distinct表示不重复出现相同的数据,很好用的哦。可能有些数据重复,如一些学校是同一个镇的
            OleDbDataReader reader = cmd.ExecuteReader();
            zhen.DataSource = reader;
            zhen.DataTextField = "zhen";
            zhen.DataValueField = "zhen";
            zhen.DataBind();
            conn.Close();
    ListItem default_selected = new ListItem(); //添加一个默认的"请选择"item,放在databind()后
            default_selected.Text = "请选择";
            default_selected .Value ="00";
            default_selected .Selected =true ;
            zhen.Items.Add(default_selected );
        }
    }
    然后在zhen_SelectedIndexChanged事件中,再行绑定
    protected void zhen_SelectedIndexChanged(object sender, EventArgs e)
        {
            OleDbConnection conn = data.Acce_Conn();
            conn.Open();
            OleDbCommand cmd2 = new OleDbCommand("select school from school_data where zhen='" + zhen.SelectedValue + "' ", conn);
            OleDbDataReader reader2 = cmd2.ExecuteReader();
            school.DataSource = reader2;
            school.DataTextField = "school";
            school.DataValueField = "school";
            school.DataBind();
            conn.Close();
        }
    这样就是最基本的联动了,省\市\区等情况类推.
    3、如果有个控件如checkBox 设置了autopostBack ,每次checkBox 一选择,服务器就接受到autopostback返回的信息,但Dropdownlist的选择又是选默认的的第一个。则要保护好数据最好就是把绑定数据放在

     if (!IsPostBack)

    {}内,则,可以解决问题。原来的全局刷新,这里应称为局部刷新,不知道对不对。

    总算问题解决了。应用实例:

    Dropdownlist9 设置了autopostBack=true;

    if (!IsPostBack)

    {   db link

    do something

      }

     string sql_db = "select * from data where sub='" + Dropdownlist9.SelectedValue + "'";
     Label22.Text = dbcen.accessGetDataSet(sql_db).Tables[0].Rows.Count.ToString();

    这样,就是联动了。Dropdownlist9选择,则Label22.Text 对应变化,把表中的符合条件的记录数目取出来。

  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/pyman/p/1330875.html
Copyright © 2011-2022 走看看