• 20150303--从SQL中获取数据的三级联动


    省市地区的三级联动,每变更一次所选地都需要提交,但是又不需要把整个页面提交,所以我们需要使用控件:UdataPanel。工具--AJAX扩展

    image

    还有ScriptManager,并要将其放在页面的最顶端。

    DropDownList则需要放在UpdatePanel中:

    image

    HTML源:

    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
        
        </div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:DropDownList ID="ddl_sheng" runat="server" AutoPostBack="true" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_sheng_SelectedIndexChanged">
                    </asp:DropDownList>
                    <asp:DropDownList ID="ddl_shi" runat="server" AutoPostBack="true" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_shi_SelectedIndexChanged">
                    </asp:DropDownList>
                    <asp:DropDownList ID="ddl_diqu" runat="server" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_diqu_SelectedIndexChanged">
                    </asp:DropDownList>
                </ContentTemplate>
            </asp:UpdatePanel>
        </form>
    </body>

    需要注意的是,在DropDownList的标签中,必须把AutoPostBack的属性设置为 true,自动回发数据。

    DataTextField="Name" DataValueField="ParentId"

    则是用来绑定显示的Text以及值Value。

    cs中的代码:

    DiquDataContext diqu=new DiquDataContext();//外部定义LINQ方便使用
    
        protected void Page_Load(object sender, EventArgs e)
        {
            //第一次加载时才会走这里,必须要有,否则每次改动选择值时加载都会显示第一次加载的数据
            if (!IsPostBack)
            {
                getsheng();
                getshi();
                getdiqu();
            }
        }
        /// <summary>
        /// 绑定省
        /// </summary>
        public void getsheng()//
        {
            var va = diqu.Members.Where(m => (m.ParentId.ToString().Length == 2));
            ddl_sheng.DataSource = va;
            ddl_sheng.DataTextField = "Name";
            ddl_sheng.DataValueField = "ParentId";
            ddl_sheng.DataBind();
        }
       /// <summary>
       /// 绑定市
       /// </summary>
        public void getshi()//
        {
            string ss = ddl_sheng.SelectedValue;//获取显示的省的值。
            var sh = diqu.Members.Where(m => (m.ParentId.ToString().Length == 4) && (m.ParentId.ToString().Substring(0, 2) == ss));
            ddl_shi.DataSource = sh;
            ddl_shi.DataTextField = "Name";
            ddl_shi.DataValueField = "ParentId";
            ddl_shi.DataBind();
        }
        /// <summary>
        /// 绑定地区
        /// </summary>
        public void getdiqu()
        {
            string ss = ddl_shi.SelectedValue;//获取显示的省的值。
            var sh = diqu.Members.Where(m => (m.ParentId.ToString().Length == 6) && (m.ParentId.ToString().Substring(0, 4) == ss));
            ddl_diqu.DataSource = sh;
            ddl_diqu.DataTextField = "Name";
            ddl_diqu.DataValueField = "ParentId";
            ddl_diqu.DataBind();
    
        }
        protected void ddl_shi_SelectedIndexChanged(object sender, EventArgs e)
        {
            getdiqu();
        }
        protected void ddl_sheng_SelectedIndexChanged(object sender, EventArgs e)
        {
            getshi();
            getdiqu();
        }
        protected void ddl_diqu_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
  • 相关阅读:
    List Available DBCC Commands
    DBCC
    Oracle Shared Pool机制之——Latches, Locks, Pins and Mutexes
    新春寄语——令人期待的2018
    Oracle Shared Pool之Library Cache
    Linux NTP服务配置 for Oracle RAC
    Oracle 12c启动时PDBs的自动打开
    Oracle RAC时间同步(NTP/CTSS)
    Oracle 11g后台进程一览表
    Selenium WebDriver-通过断言页面是否存在某些关键字来确定页面按照预期加载
  • 原文地址:https://www.cnblogs.com/Tirisfal/p/4310148.html
Copyright © 2020-2023  润新知