• net + js 实现无刷新联动下拉框


    C#代码
    using System;    
    using System.Data;    
    using System.Configuration;    
    using System.Web;    
    using System.Web.Security;    
    using System.Web.UI;    
    using System.Web.UI.WebControls;    
    using System.Web.UI.WebControls.WebParts;    
    using System.Web.UI.HtmlControls;    
    using System.Data.OleDb;    
       
    public partial class _Default : System.Web.UI.Page     
    {    
        
    protected void Page_Load(object sender, EventArgs e)    
        {    
            
    if (!IsPostBack)    
            {    
                Bind();    
            }    
        }    
        
    void Bind()    
        {    
            
    string sql = "select * from category";    
            DataTable dt 
    = getTable(sql);    
            
    this.select1.Items.Clear();    
            ListItem item 
    = new ListItem("--请选择--""-1");    
            
    this.select1.Items.Add(item);    
            
    for (int i = 0; i < dt.Rows.Count; i++)    
            {    
                ListItem itemNew 
    = new ListItem(dt.Rows[i]["name"].ToString(),dt.Rows[i]["id"].ToString());    
                
    this.select1.Items.Add(itemNew);    
       
                
    //种类--做双向连动就可以用到了这个例子暂时没用..    
                string script = "InitCategory('" + dt.Rows[i]["id"].ToString() + "','" + dt.Rows[i]["name"].ToString() + "');";    
                Page.ClientScript.RegisterStartupScript(Page.GetType(), Guid.NewGuid().ToString(), script,
    true);    
            }    
       
            
    string sqlP = "select * from product";    
            DataTable dtp 
    = getTable(sqlP);    
            
    this.select2.Items.Clear();    
            ListItem item2 
    = new ListItem("--请选择--","-1");    
            
    this.select2.Items.Add(item2);    
            
    for (int i = 0; i < dtp.Rows.Count; i++)    
            {    
                DataRow row 
    = dtp.Rows[i];    
                ListItem it 
    = new ListItem(row["pname"].ToString(),row["pid"].ToString());    
                
    this.select2.Items.Add(it);    
                
    string s = "InitProduct('" + row["pid"].ToString() + "','"+row["cid"].ToString()+"','" + row["pname"].ToString() + "');";    
                Page.ClientScript.RegisterStartupScript(Page.GetType(), Guid.NewGuid().ToString(), s, 
    true);    
            }    
        }    
       
        DataTable getTable(
    string sql)    
        {    
            OleDbCommand cmd 
    = new OleDbCommand(sql, getCon());    
            OleDbDataAdapter da 
    = new OleDbDataAdapter(cmd);    
            DataSet ds 
    = new DataSet();    
            da.Fill(ds);    
            
    return ds.Tables[0];    
                
        }    
        OleDbConnection getCon()    
        {    
            
    return new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + HttpContext.Current.Server.MapPath("App_Data/db2.mdb;"));    
        }    
    }

    XML/HTML代码

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>   
       
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
       
    <html xmlns="http://www.w3.org/1999/xhtml" >   
    <head runat="server">   
        
    <title>下拉框联动</title>   
        
    <script type="text/javascript">   
            
    function $(id)    
            {    
                
    return document.getElementById(id);    
            }    
            
    //种类--做双向连动就可以用到了这个例子暂时没用..    
            function CategoryEnty()    
            {    
                id
    =null;    
                pid
    =null;    
                name
    =null;    
            }    
            
    var cateArray = new Array();    
            
    function InitCategory(id,name)    
            {    
                
    var ce =new  CategoryEnty();    
                ce.id
    =id;    
                ce.pid
    =pid;    
                ce.name
    =name;    
                cateArray.push(ce);    
            }    
            
    //下拉框改变    
            function ChangeSelect()    
            {    
                
    var sValue = $("select1").value;    
                
    var count=0;    
                $(
    "select2").options.innerHTML="";    
                $(
    "select2").options[0]= new Option("--请选择--","-1");    
                
    for(var i=0;i<pArray.length;i++)    
                {    
                    
    if(sValue==pArray[i].cid)    
                    {       
                         count
    ++;    
                         $(
    "select2").options[count]= new Option(pArray[i].name,pArray[i].id);    
                             
                    }    
                }    
            }    
                
            
    //产品    
            function ProductEnty()    
            {    
                id
    =null;    
                cid
    =null;    
                name
    =null;    
            }    
            
    var pArray = new Array();    
            
    function InitProduct(id,cid,name)    
            {    
                
    var pe = new ProductEnty();    
                pe.id
    =id;    
                pe.cid
    =cid;    
                pe.name
    =name;    
                pArray.push(pe);    
            }    
        
    </script>   
    </head>   
       
    <body>   
        
    <form id="form1" runat="server">   
        
    <div>   
           
    <select id="select1" runat=server onchange="ChangeSelect();"><option value="-1">--请选择--</option></select>   
           
    <select id="select2" runat=server><option value="-1">--请选择--</option></select>   
        
    </div>   
        
    </form>   
    </body>   
    </html>
  • 相关阅读:
    支持高速局域网文件传输的企业云盘(速度可达20M)
    高版本Sqlserver数据库还原到低版本数据库的实现方式
    sqlserver没有采用默认实例时 通过ip进行链接
    AM8互联设置方法
    蛮好用的Gungho重点工作督查督办跟踪管理系统
    AM8后台历史数据手工清理方法
    AM8不能下任何载附件及所有聊天记录无法登记
    【OI】时间复杂度
    【OI】矩阵快速幂
    【Ubuntu】奇怪的无法启动
  • 原文地址:https://www.cnblogs.com/hateyoucode/p/1376974.html
Copyright © 2020-2023  润新知