这篇来说说如何利用 XMLHttpRequest 对象实现 DropDownList 控件的联动.
先看下效果图
Let's get started.
首先来创建相关的数据库和表
这里使用的是Test数据库,当然你可以任意命名数据库名称,只需在相应数据库下执行建表的脚本即可。
建表脚本可以看这里省、市联动数据库SQL脚本
执行脚本之后,数据库的部分就完成了。
然后打开开发环境 vs 2005,选择或新建项目
新建一Web窗体,命名为 LinkageDropDownList.aspx 此Web窗体为View部分,需要为它创建异步请求服务器时的处理对象。
在这里还是选取了Web窗体,当然选取其他的服务器处理对象也是完全可以的。
再新建一Web窗体,命名为 GetCityByProvinceID.aspx 用于处理 LinkageDropDownList.aspx 发送过来的请求。
接着设计 LinkageDropDownList.aspx 的界面,界面效果很简单,就是两个DropDownList 和一个 Button 按钮。
代码如下:
+ expand sourceview plaincopy to clipboardprint?
<asp:DropDownList ID="ddlProvince" onchange="getCityBind(this.value);" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlCity" runat="server"></asp:DropDownList>
<asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
<asp:DropDownList ID="ddlProvince" onchange="getCityBind(this.value);" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlCity" runat="server"></asp:DropDownList>
<asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
getCityBind 是一个假定的js函数,让我们来想想函数的功能是怎样的,它应该实现些什么。
在改变省的下拉列表框时,应该根据选择的省的ID获得它对应的市的数据并绑定市的下拉列表框。
主体功能已经出来了,让我们来实现它。首先,在触发事件时我们应该把选择后的省的ID传到方法中,
方法的原型也就出来了,function getCityBind(val) { do something }
代码如下:
+ expand sourceview plaincopy to clipboardprint?
function getCityBind(val)
{
}
function getCityBind(val)
{
}
完整的js代码:
view plaincopy to clipboardprint?
var xmlHttp=null;
function $(id)
{
}
function createXMLHttpRequest()
{