asp.net实现ListBox、DropDownList无刷新三级联动(xmlhttp)

原创 2007年09月23日 22:51:00
DropDownList只需将控件名改一下就可以了。
数据库结构为
id 自动编号
oneid 数值型 一级分类id
twoid 数值型 二级分类id
threeid 数值型 三级分类id
sort 数值型 排序
classname 字符型 分类名称

数据库下载
/Files/netshuai/class.rar

aspx页面javascript代码
<script type="text/javascript">
<!--
    
function XmlPost(str)
    
{
        
var webFileUrl="";
        document.all(
"<% =Lbx_ClassThree.ClientID %>").length=0;
        
if(str==1)
        
{
            webFileUrl 
= "?oneid=" + document.all("<% =Lbx_ClassOne.ClientID %>").value;
            document.all(
"<% =Lbx_ClassTwo.ClientID %>").length=0;
        }

        
else
        
{
           webFileUrl 
= "?oneid=" + document.all("<% =Lbx_ClassOne.ClientID %>").value+"&twoid="+document.all("<% =Lbx_ClassTwo.ClientID %>").value;
        }


        
var result = "";
        
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
        xmlHttp.open(
"Post", webFileUrl, false);
        xmlHttp.send(
"");
        result 
= xmlHttp.responseText;


        
if(result != "")
        
{
            
var piArray = result.split(",");
            
if(str==1)
            
{
                
for(var i=0;i<piArray.length;i++)
                
{
                    
var ary1 = piArray[i].toString().split("|");
                    document.all(
"<% =Lbx_ClassTwo.ClientID %>").options.add(new Option(ary1[1].toString(),ary1[0].toString()));

                }

            }

            
else
            
{
                
for(var i=0;i<piArray.length;i++)
                
{
                    
var ary1 = piArray[i].toString().split("|");
                    document.all(
"<% =Lbx_ClassThree.ClientID %>").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                }

            

            }

        }



    }




//-->
</script>

aspx页面控件代码
<asp:ListBox ID="Lbx_ClassOne" runat="server" Height="300px" Width="150px"></asp:ListBox>
<asp:ListBox ID="Lbx_ClassTwo" runat="server" Height="300px" Width="150px"></asp:ListBox>
<asp:ListBox ID="Lbx_ClassThree" runat="server" Height="300px" Width="150px" ></asp:ListBox>
        

cs页面代码
    protected void Page_Load(object sender, EventArgs e)
    
{
        
string strOneid = "", strTwoid = "";
        
if (Request["oneid"!= null && Request["oneid"].ToString() != "")
        
{
            strOneid 
= Request["oneid"].ToString();

        }


        
if (Request["twoid"!= null && Request["twoid"].ToString() != "")
        
{

            strTwoid 
= Request["twoid"].ToString();
        }


        
if (strOneid != "")
        
{
            Lbx_Class_Bind(strOneid, strTwoid);
        }


        
if (!this.IsPostBack)
        
{
            Lbx_ClassOne_Bind();
            Lbx_ClassOne.Attributes.Add(
"onchange""XmlPost(1)");
            Lbx_ClassTwo.Attributes.Add(
"onchange""XmlPost(2)");
        }

    }


    
private void Lbx_ClassOne_Bind()
    
{
        
string strSQL;
        strSQL 
= "select * from nts_infoclass where oneid<>0 and twoid=0 and threeid=0 order by sort";
                string ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='数据库路径'";
        OleDbConnection cnn = new OleDbConnection(ConnectionString);
        cnn.Open();
        OleDbCommand cmd=new OleDbCommand(sql, cnn);
        OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            Lbx_ClassOne.DataSource 
= dr;
        Lbx_ClassOne.DataTextField = "classname";
        Lbx_ClassOne.DataValueField 
= "oneid";
        Lbx_ClassOne.DataBind();
    }


    
private void Lbx_Class_Bind(string oneid, string twoid)
    
{
        
string strSQL = "",idname="";
        
if (oneid != "" && twoid == "")
        
{
            strSQL 
= "select * from nts_infoclass where twoid<>0 and threeid=0 and oneid=" + oneid + " order by sort";
            idname 
= "twoid";
        }

        
if (oneid != "" && twoid != "")
        
{
            strSQL 
= "select * from nts_infoclass where threeid<>0 and oneid=" + oneid + " and twoid=" + twoid + " order by sort";
            idname 
= "threeid";

        }

        
string mystr = "";
        string ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='数据库路径'";
        OleDbConnection cnn = new OleDbConnection(ConnectionString);
        cnn.Open();
        OleDbCommand cmd=new OleDbCommand(sql, cnn);
        OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
     


        
while (dr.Read())
        
{

            mystr 
+= "," + dr[idname].ToString() + "|" + dr["classname"].ToString();

        }

        
if (mystr != "")
        
{
            mystr 
= mystr.Substring(1);
        }

        dr.Close();
        
this.Response.Write(mystr);
        
this.Response.End();

    }
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Asp.net—DropDownList与listbox的联动

在实际的项目中,会有这样的需求,比如在dropdownlist绑定了数据库以后,选择相应的内容,在listbox中就会显示对应内容下的具体条目。比如:在dropdownlist中绑定数据库中所有的省,...

Asp.net MVC3 关于@Html中ListBox、DropDownList使用

ListBox,DropDownList都是通过使用指定的 HTML 帮助器和窗体字段的名称,返回单选select 元素。 同属于SelectExtensions 类 1、@Html.ListBo...
  • pasic
  • pasic
  • 2011-12-25 22:47
  • 22559

Asp.net MVC3 关于@Html中ListBox、DropDownList使用

ListBox,DropDownList都是通过使用指定的 HTML 帮助器和窗体字段的名称,返回单选select 元素。 同属于SelectExtensions 类 1、@Html.Li...

《ASP.NET》数据绑定—DropDownList、ListBox

DropDownList和ListBox实现两级联动功能,他们也可以将从后台数据库中搜选的出来的信息加以绑定,这里要实现的功能是在DropDownList中选择“省”,然后让ListBox自动将其省份...

asp.net用xmlhttp实现无刷新定时读取后台数据

http://www.cnblogs.com/efreer/archive/2009/04/10/1433213.html 整理 update.html页面所有代码 http://www...

访问Access数据库实现DropDownList二级异步联动(ASP.NET WebForm开发方式)

访问Access数据库实现DropDownList二级异步联动(ASP.NET WebForm开发方式)

asp.net(c#)用Ajax调用web 服务实现省市县三级联动

asp.net(c#)用Ajax调用web 服务实现省市县三级联动,相对有另一种通过XML实现三级联动的方法,步骤其实是一样的。

asp.net 使用jquery 和ajax 实现三级联动

前台: #Select1 { height: 21px; width: 95px; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)