Ajax数据库两级联动菜单(SQLServer版)(转载)
2009-07-27 17:49
323 查看
Ajax数据库两级联动菜单(SQLServer版)
// JScript 文件
var xmlHttp;
var BigCate;
function createXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function getBigCate()
{
createXMLHttpRequest();
BigCate = document.getElementById("BigCate").value;
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET","Liandong.aspx?BigCateID="+BigCate+"",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
getSmallCate(xmlHttp.responseText);
}
}
}
function getSmallCate(paramValue)
{
document.getElementById("SmallCate").length = 0;
document.getElementById("SmallCate").options.add(new Option("please choose the city","0"));
if (paramValue != "")
{
var Array1 = paramValue.split("|");
for(var i = 1;i < Array1.length;i++)
{
var Array2 = Array1[i].split(",");
document.getElementById("SmallCate").options.add(new Option(Array2[0].toString(),Array2[1].toString()));
}
}
else
{
document.getElementById("SmallCate").length = 0;
}
}
第二步:在LianDong.aspx文件里调用上面的js文件,并添加两个DropDownList控件
<asp:DropDownList id="BigCate" runat="server" Width="150px" ></asp:DropDownList>
<asp:DropDownList id="SmallCate" runat="server" Width="150px"></asp:DropDownList>
<HtmlInputHidden id="myHidden" runat="server" />
第三步:在LianDong.aspx.cs文件里添加如下代码
protected void Page_Load(object sender, EventArgs e)
{
BigCate.Attributes.Add("onchange", "getBigCate()");
if (!Page.IsPostBack)
{
getBigCateValue();
getSmailCateValue();
}
}
private void getBigCateValue()
{
SqlDataReader dr;
SqlConnection myconn = new SqlConnection(connstr);
myconn.Open();
//OleDbCommand mycomm = new OleDbCommand("select BigID,BigClassName from BigClass", myconn);
SqlCommand mycomm = new SqlCommand("select BigID,BigClassName from BigClass", myconn);
dr = mycomm.ExecuteReader();
BigCate.Items.Add(new ListItem("Choose Big Class", "0"));
while (dr.Read())
{
BigCate.Items.Add(new ListItem(dr["BigClassName"].ToString(), dr["BigID"].ToString()));
}
myconn.Close();
myconn.Dispose();
}
private void getSmailCateValue()
{
if (Request.QueryString["BigCateID"] != null)
{
int BigCateID;
string stringSmallCateValue = "";
DataSet ds = new DataSet();
DataTable dt;
BigCateID = Int32.Parse(Request.QueryString["BigCateID"].ToString());
//OleDbConnection myconn = new OleDbConnection(connstr);
SqlConnection myconn = new SqlConnection(connstr);
myconn.Open();
//OleDbCommand mycomm = new OleDbCommand("select SmallID,SmallClassName from [SmallClass] where BigClass=" + BigID + "", myconn);
SqlCommand mycomm = new SqlCommand("select SmallID,SmallClassName from [SmallClass] where BigClass=" + BigCateID + "" , myconn);
//OleDbDataAdapter da = new OleDbDataAdapter(mycomm);
SqlDataAdapter da = new SqlDataAdapter(mycomm);
da.Fill(ds, "SmallTable");
dt = ds.Tables["SmallTable"];
if (dt.Rows.Count != 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
stringSmallCateValue += "|" + dt.Rows[i]["SmallClassName"].ToString() + "," + dt.Rows[i]["SmallID"].ToString();
}
}
Response.Write(stringSmallCateValue);
Response.End();
}
}
第四步:建立两个表,一个是BigClass,里面的字段为BigID,BigClassName;
另一个表是SmallClass,里面的字段为SmallID,SmallClassName,BigClass
本文转载自:http://www.mychanglai.com/TopicCenter/DetailShow.aspx/6.html
第一步:首先建立一个js文件,在LianDong.aspx文件里调用// JScript 文件
var xmlHttp;
var BigCate;
function createXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function getBigCate()
{
createXMLHttpRequest();
BigCate = document.getElementById("BigCate").value;
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET","Liandong.aspx?BigCateID="+BigCate+"",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
getSmallCate(xmlHttp.responseText);
}
}
}
function getSmallCate(paramValue)
{
document.getElementById("SmallCate").length = 0;
document.getElementById("SmallCate").options.add(new Option("please choose the city","0"));
if (paramValue != "")
{
var Array1 = paramValue.split("|");
for(var i = 1;i < Array1.length;i++)
{
var Array2 = Array1[i].split(",");
document.getElementById("SmallCate").options.add(new Option(Array2[0].toString(),Array2[1].toString()));
}
}
else
{
document.getElementById("SmallCate").length = 0;
}
}
第二步:在LianDong.aspx文件里调用上面的js文件,并添加两个DropDownList控件
<asp:DropDownList id="BigCate" runat="server" Width="150px" ></asp:DropDownList>
<asp:DropDownList id="SmallCate" runat="server" Width="150px"></asp:DropDownList>
<HtmlInputHidden id="myHidden" runat="server" />
第三步:在LianDong.aspx.cs文件里添加如下代码
protected void Page_Load(object sender, EventArgs e)
{
BigCate.Attributes.Add("onchange", "getBigCate()");
if (!Page.IsPostBack)
{
getBigCateValue();
getSmailCateValue();
}
}
private void getBigCateValue()
{
SqlDataReader dr;
SqlConnection myconn = new SqlConnection(connstr);
myconn.Open();
//OleDbCommand mycomm = new OleDbCommand("select BigID,BigClassName from BigClass", myconn);
SqlCommand mycomm = new SqlCommand("select BigID,BigClassName from BigClass", myconn);
dr = mycomm.ExecuteReader();
BigCate.Items.Add(new ListItem("Choose Big Class", "0"));
while (dr.Read())
{
BigCate.Items.Add(new ListItem(dr["BigClassName"].ToString(), dr["BigID"].ToString()));
}
myconn.Close();
myconn.Dispose();
}
private void getSmailCateValue()
{
if (Request.QueryString["BigCateID"] != null)
{
int BigCateID;
string stringSmallCateValue = "";
DataSet ds = new DataSet();
DataTable dt;
BigCateID = Int32.Parse(Request.QueryString["BigCateID"].ToString());
//OleDbConnection myconn = new OleDbConnection(connstr);
SqlConnection myconn = new SqlConnection(connstr);
myconn.Open();
//OleDbCommand mycomm = new OleDbCommand("select SmallID,SmallClassName from [SmallClass] where BigClass=" + BigID + "", myconn);
SqlCommand mycomm = new SqlCommand("select SmallID,SmallClassName from [SmallClass] where BigClass=" + BigCateID + "" , myconn);
//OleDbDataAdapter da = new OleDbDataAdapter(mycomm);
SqlDataAdapter da = new SqlDataAdapter(mycomm);
da.Fill(ds, "SmallTable");
dt = ds.Tables["SmallTable"];
if (dt.Rows.Count != 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
stringSmallCateValue += "|" + dt.Rows[i]["SmallClassName"].ToString() + "," + dt.Rows[i]["SmallID"].ToString();
}
}
Response.Write(stringSmallCateValue);
Response.End();
}
}
第四步:建立两个表,一个是BigClass,里面的字段为BigID,BigClassName;
BigID | BigClassName |
1 | 书籍 |
2 | 工具 |
3 | 软件 |
SmallID | SmallClassName | BigClass |
1 | Asp.net手册 | 1 |
2 | SQL语句手册 | 1 |
3 | 下载工具 | 2 |
4 | 图片工具 | 2 |
相关文章推荐
- 用ajax技术读取数据库内容实现二级联动下拉选择菜单
- Ajax三级联动菜单(转载)
- 两级联动菜单的实现之二 --- 用ajax实现菜单联动
- AJAX示例应用-2(两级菜单的联动)-方式1(服务器以字符串形式返回子类别的id,name)
- jq+ajax获取数据库里头的省市区联动三级搜索菜单
- Ajax三级联动菜单(转载)
- AJAX示例应用-2(两级菜单的联动)-方式2(服务器以字符串形式执行代码在客户端运行)
- 基于asp+ajax和数据库驱动的二级联动菜单
- AJAX示例应用-2(两级菜单的联动)-方式3(服务器返回XML数据,真正的AJAX应用)
- asp js三级联动菜单,数据库版本
- Ajax+jQuery 实现菜单联动
- Ajax两级联动效果以及具体代码
- 无限级联动菜单-AJAX版(附源码下载)
- php带有数据库的二级联动菜单
- ASP + 数据库 + JavaScript 实现动态无限级联动菜单
- 基于AJAX的无刷新DropDownLis两级联动
- 用ajax 不用刷新页面就可实现国家,省,城市的三级联动(转载)