的下拉框,通过AJAX完美的解决问题的变化
认为这是非常好的,但在实际的变化,发现了很多问题,主要的问题是,原来的地区联动,实现在JS的数据源是一个XML文件,如果下拉框是服务器端的控制问题就很好解决,现在是HTML控制突然好像我想改变一些不好的,要实现这几种方法都不理想,最后用Ajax实现的问题现在的想法仔细想想,顺利完成或容易解决的,因为这似乎是唯一使用AJAX来更好的解决方案,如果是向下拉框的onchange事件背景区域。该区通过下拉框ID,实际上有一个回发将重新初始化的下拉框联动区域。
现在我将讨论Ajax实现的过程。
当然,第一页需要定义一个带有下拉框的HTML控件。
复制代码代码如下所示:
接下来的事情,当然,定义XMLHttpRequest对象。
复制代码代码如下所示:
VaR技术;
CreateXmlHttp()函数
{
/ IE浏览器来创建XMLHttpRequest对象
如果(窗口。XmlHttpRequest)
{
XMLHTTP =新的XMLHttpRequest();
}
/ / IE浏览器的XMLHttpRequest对象的创建
如果(窗口。ActiveX对象)
{
尝试
{
XMLHTTP =新的ActiveX对象(微软。XMLHTTP );
}
捕捉(e)
{
尝试{
XMLHTTP =新的ActiveX对象(MSXML2. XMLHTTP );
}
catch(前){ }
}
}
}
这在我的许多博客文章中得到了解释,我没有说太多。
下一件事当然是使用对象发送条件,获取数据,并将获取的数据绑定到代理下拉框中。
AjaxSend()的功能是在该地区的下拉框的onchange事件触发;
复制代码代码如下所示:
AjaxSend()函数
{
/ /创建XMLHttpRequest对象
CreateXmlHttp();
如果(!Xmlhttp)
{
警报(创建XMLHttpRequest的例外!;
返回false;
}
获取区域下拉框值,作为发送的条件
VaR SS = document.getelementbyid(A2)。Value.substring(0,4);
}
/ /发送URL userajax,我用特殊的数据
url =userajax。aspxarea =+不锈钢;
Xmlhttp.open(后
Xmlhttp。onreadystatechange =功能()
{
如果(XMLHTTP。发生= 4)
{
如果(XMLHTTP。状态= = 200)
{
/原来的下拉框空
document.getelementbyid(代理)。选项。长度= 0;
是一个返回字符串,以0001代理10002代理20003 代理3的形式出现。
var str = xmlHttp.responseText;
字符串被分为数组形式。
VAR STR = str.split(
document.getelementbyid(代理)。Options.add(新(选项
对于(var i = 0;i < strs.length-1;i++)
{
获取值值(数字)
创建一个STR {我}。substring(0,STR {我}。字符串(/));
获取绑定内容
var b = STR {我}。substring(STR {我}。字符串(/)+ 1,STR。长度);
绑定到下拉框
document.getelementbyid(代理)。Options.add(新的选项(B,A));
}
}
}
}
Xmlhttp.send();
}
顺便说一下,我们还将得到的数据返回到字符串的过程后,UserAjax接到区数。
复制代码代码如下所示:
字符串面积=请求。QueryString {地区} ToString();
DataTable数据=生成DataTable,涉及公司核心代码,省略
字符串;
为(int i = 0;i < data.rows.count;i++)
{
如果(=)
{
AA =数据。行{我} {id}。ToString()+/+数据。行{我} {名字ToString()};
}
其他的
{
aa = aa +
}
}
响应(写入);
这样,ajax就可以很好地解决一个比较困难的问题,因为后台返回后台不会初始化下拉框,从而导致选项的改变。亲爱的朋友,如果你看看这个例子,你也有ajax吗
更好的理解