一直不会做下拉列表框的二级联动(无刷新页面的那种),后来想到用二维数组,可那种方法又太麻烦了。所以
就Ajax来做。
昨天问了很多人学习做二级联动的方法,做了很多次都有问题。今天终于做成功了暂时也没有发现存在的问题了。
发出来给大家献丑一下要源码的可以加我QQ122486006 欢迎交流http://www.cnkangaroo.com/ajax/index.asp

解决方案 »

  1.   

    我做的无刷新,用到的技术是一样的,你参考以下吧<script language="javascript">
        
            //checkout user login
            function CheckLogin()
            {
                var id = document.getElementById("txtLoginName").value;
                var pwd = document.getElementById("txtLoginPwd").value;
                if(id != "" && pwd != "")
                {
                    AjaxFunction('CheckLogin',id,pwd);
                }
                else
                {
                    alert("Neither LoginId nor pwd should empty!");
                }
            }
            
            //Asynchronous transfer
            var xmlhttp;
            function AjaxFunction(Todo,id,pwd)//send request
            {
                xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
                xmlhttp.open("Post","../../AjaxComplete.aspx?do="+ Todo +"&LoginId="+ id +"&value="+pwd);
                if(Todo == "CheckLogin")
                {
                    xmlhttp.onreadystatechange = IsPass;
                }
                if(Todo == "Out")
                {
                    xmlhttp.onreadystatechange = IsOut;
                }
                if(Todo == "EditName")
                {
                    xmlhttp.onreadystatechange = IsEdit;
                }
                xmlhttp.send(null);
            }
            
            function IsPass()//Deal with back request
            {
                if (xmlhttp.readystate==4&&xmlhttp.status==200)//differentiate back state
                {
                    if (xmlhttp.responsetext !="")
                    {
                        var va = xmlhttp.responsetext;//back value
                        if(va != "")//succeed
                        {
                            document.getElementById("labLoginName").innerText = va;
                            document.getElementById("divLogin").style.display = "none";
                            document.getElementById("divWellcome").style.display = "block";
                            location.href = "FrameBase/Frame.aspx";
                        }
                    }
                    else//false
                    {
                        alert("loginId or pwd is wrong!");
                        document.getElementById("divLogin").style.display = "block";
                        document.getElementById("divWellcome").style.display = "none";
                    }
                 }
             }
             
             //jump out
            function IsOut()
            {
                if (xmlhttp.readystate==4&&xmlhttp.status==200)
                {
                    if (xmlhttp.responsetext !="")
                    {
                        var va = xmlhttp.responsetext;
                        if(va != "")
                        {
                            alert("Out!");
                            document.getElementById("txtLoginName").value = "";
                            document.getElementById("txtLoginPwd").value = "";
                            document.getElementById("divLogin").style.display = "block";
                            document.getElementById("divWellcome").style.display = "none";
                        }
                    }
                    else
                    {
                        alert("Out False,Please try agin!");
                    }
                 }
             }
             
             //Reset Name
             function EditName()
             {
                var val = document.getElementById('txtUname').value;
                if(val == '')
                {
                    alert('Please input your name!');
                }
                else
                {
                    AjaxFunction('EditName','Uname',val);
                }
             }
             // Do  Reset Name
             function IsEdit()
             {
                if (xmlhttp.readystate==4&&xmlhttp.status==200)
                {
                    if (xmlhttp.responsetext !="")
                    {
                        var va = xmlhttp.responsetext;
                        if(va != "")
                        {
                            document.getElementById("labLoginName").innerText = document.getElementById("txtUname").value;
                            document.getElementById("txtUname").value = "";
                            document.getElementById("divName").style.display = "none";
                        }
                    }
                 }
             }
             
             //re
             function ShowContent(ob)
             {
                if(ob.id == "tdNotes")
                {
                    document.getElementById("divNotes").style.display = "block";
                    document.getElementById("divRouting").style.display = "none";
                    document.getElementById("divFinance").style.display = "none";
                }
                else if(ob.id == "tdRouting")
                {
                    document.getElementById("divNotes").style.display = "none";
                    document.getElementById("divRouting").style.display = "block";
                    document.getElementById("divFinance").style.display = "none";
                }
                else
                {
                    document.getElementById("divNotes").style.display = "none";
                    document.getElementById("divRouting").style.display = "none";
                    document.getElementById("divFinance").style.display = "block";
                }
             }
        </script>
      

  2.   

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    using MyMajordomo.Model;
    using MyMajordomo.BLL;
    using System.Text.RegularExpressions;namespace MyMajordomo
    {
        public partial class AjaxComplete : System.Web.UI.Page
        {
            User user = new User();
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    #region 将各页面的前台数据与数据库或其他数据进行交互操作 Data Interactive of Page and DataBase(SQL)
                    if (Request["do"] != null)
                    {
                        #region 验证用户登录(根据LoginId 和 Pwd查看是否有匹配数据)   check user login by loginId and pwd
                        if (Request["do"].Trim() == "CheckLogin")
                        {
                            string loginId = Request["LoginId"].Trim();
                            string pwd = Request["value"].Trim();
                            user = new User();
                            user.LoginId = loginId;
                            user.Pwd = pwd;
                            User newUser = UserBLL.CheckLogin(user);
                            Session["user"] = newUser.UID;
                            Response.Clear();
                            if (newUser != null)
                            {
                                Response.Write(newUser.UName);
                            }
                            else
                            { 
                                Response.Write("");
                            }
                            Response.End();
                        }
                        #endregion                    #region 用户登出(清空session)  user jump out  clear session user
                        if (Request["do"].Trim() == "Out")
                        {
                            Session["user"] = null;                        Response.Clear();
                            Response.Write("OK");
                            Response.End();
                        }
                        #endregion                    #region 用户改名(根据当前session中的用户信息改变UName为前台传过来的值)  user rename
                        if (Request["do"].Trim() == "EditName")
                        {
                            user = (User)Session["user"];
                            user.UName = Request["do"].Trim();
                            UserBLL.ModifyUser(user);
                            Response.Clear();
                            Response.Write("OK");
                            Response.End();
                        }
                        #endregion
                    }
                    if (Request["handle"] != null)
                    {
                        string rValue = "";
                        if (Request["table"].Trim() == "Note")
                        {
                            if (Request["handle"].Trim() == "update")
                            {
                                string str = Request["values"].Trim();
                                string[] values = str.Split('□');
                                Note note = new Note();
                                note.Title = values[0].Trim();
                                int nType = int.Parse(values[1].Trim());
                                NoteType nt = new NoteType();
                                nt.TID = nType;
                                note.NoteType = nt;
                                note.IsShare = int.Parse(values[2].Trim());
                                note.ImGrade = int.Parse(values[3].Trim());
                                note.Content = values[4].Trim();
                                note.CreateBy = UserBLL.GetUserByUID(int.Parse(Session["user"].ToString().Trim())).UName;
                                note.CreateDate = DateTime.Now;
                                string nid = Request["code"].Trim();
                                note.NID = nid == "" ? 0 : int.Parse(nid);
                                if (note.NID == 0)
                                {
                                    rValue = NoteBLL.AddNote(note) != null ? "Save success" : "Save false";
                                }
                                else
                                {
                                    rValue = NoteBLL.ModifyNote(note) == true ? "Save success" : "Save false";
                                }
                            }
                            //else if (Request["handle"].Trim() == "delete")
                            //{
                            //    Note note = new Note();
                            //    note.NID = int.Parse(Request["code"].Trim());
                            //    rValue = NoteBLL.DeleteNote(note) > 0 ? "Delete Success" : "Delete false"; 
                            //}
                        }
                        Response.Clear();
                        Response.Write(rValue);
                        Response.End();
                    }
                #endregion
                }
                catch (Exception ex)
                {
                    throw ex.InnerException;
                }
            }
        }
    }