• 关于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 对应变化,把表中的符合条件的记录数目取出来。

  • 相关阅读:
    Creative Cloud 无法连接问题
    HTTP_PROXY
    <video> controlsList
    Electron 问题
    含神经网络的离线AI翻译 APP

    (转载)移动Web开发技巧汇总
    2014年总结
    转载(web app变革之rem)
    火狐不支持backgroundPosition的js插件
  • 原文地址:https://www.cnblogs.com/pyman/p/1330875.html
Copyright © 2020-2023  润新知