適用與firefox ASP.NET無刷新二級聯動下拉列表
2024-07-10 12:40:00
供稿:網友
可能"極好的"又會帶來很多的非議,但是我認為這確實很好,我看了大約20個無刷新的連動下拉列表,他們在firefox下面就一團糟.為了這個我差不多搞了兩天,就是如果提交窗體后如何保持第二個列表框的值,因為通過js 給下拉框添加條目那么他的狀態是不會被保存的測試平臺:ie6,firefox
功能:二級無刷新連動
特點:跨瀏覽器;提交窗體取第二下拉框的值;數據來源于數據庫;以xmlhttp來發送請求,實現無刷新
請求:如果您能夠找到更好的方法請告訴我,非常感謝,您的批評和建議對我是莫大的鼓勵
webform1.aspx:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="drop.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
//jb函數會根據不同的瀏覽器初始化個xmlhttp對象
function jb()
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
A=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
{
A=new XMLHttpRequest()
}
return A
}
//下面Go函數是父列表框改變的時候調用,參數是選擇的條目
function Go(obj)
{
//得到選擇框的下拉列表的value
var svalue = obj.value;
//定義要處理數據的頁面
var weburl = "webform1.aspx?parent_id="+svalue;
//初始化個xmlhttp對象
var xmlhttp = jb();
//提交數據,第一個參數最好為get,第三個參數最好為true
xmlhttp.open("get",weburl,true);
// alert(xmlhttp.responseText);
//如果已經成功的返回了數據
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)//4代表成功返回數據
{
var result = xmlhttp.responseText;//得到服務器返回的數據
//先清空dListChild的所有下拉項