联动菜单
1.aspx代码:
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="State" runat="server"></asp:DropDownList>
<asp:DropDownList id="City" runat="server"></asp:DropDownList>
<SCRIPT LANGUAGE="JavaScript">
<!--
//以XML求取数据
function XmlPost(obj)
{
var svalue = obj.value;
//alert(svalue);
var webFileUrl = "?brc_id=" + svalue;
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
if(result != "")
{
document.all("City").length=0;
var piArray = result.split(",");
for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("|");
//alert(ary1[0].toString());
document.all("City").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
alert(result);
}
}
</SCRIPT>
</form>1.asp.cs 主要代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
myConnection = new SqlConnection(StrCn);
if(!IsPostBack)
{
down1_bind();
//State.Items.FindByValue("236").Selected =true;
int brc_id = Convert.ToInt16(Request.QueryString["brc_id"]);
//Response.Write (brc_id);
if(brc_id + 1!= 1)
{
down2_bind(brc_id);
} int IntBigType =Convert.ToInt16(State.SelectedValue);// 字符转整数
City_Bind(IntBigType); }
}
/// <summary>
/// 返回第2个下拉框需要的值给xmlhttp
/// </summary>
/// <param name="brc_id"></param>
private void down2_bind(int brc_id)
{
string mystr = "";
string sql = "sp_BigClass_List " + brc_id;
DataTable mytab = get_dt(sql); if(mytab.Rows.Count != 0)
{
for(int i=0;i<mytab.Rows.Count;i++)
{
mystr += "," + mytab.Rows[i]["BigClassId"].ToString() + "|" + mytab.Rows[i]["BigClassName"].ToString();
}
mystr = mystr.Substring(1);
}
Response.Write(mystr);
Response.End();
} /// <summary>
/// 绑定第一个下拉框
/// </summary>
private void down1_bind()
{
string sql = "sp_BigClass_List 2";
DataTable mytab = get_dt(sql);
State.DataSource = mytab;
State.DataValueField = "BigClassId";
State.DataTextField = "BigClassName";
State.DataBind();
State.Attributes.Add("onchange","XmlPost(this);");
}
。
选择省份后关联到县市 用XMLHTTP实现
县市(City)菜单 显示的内容是从BigClass表取值
BigClass
id name
1 广州
2 深圳
3 珠海
。
现在我要选择县市(City)DropDownList菜单,根据它的DataValueField值
再查找另外一个表如tab1
如我选择深圳后 sql语句应为 Select qqq from tab1 where mainid=2
然后把查到的数据显示在一文本框里 再用XMLHTTP怎么实现?
不要用DropDownList1_SelectedIndexChanged事件
因为用DropDownList1_SelectedIndexChanged,页面总是闪,客户端文本框内容也被清空了!
1.aspx代码:
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="State" runat="server"></asp:DropDownList>
<asp:DropDownList id="City" runat="server"></asp:DropDownList>
<SCRIPT LANGUAGE="JavaScript">
<!--
//以XML求取数据
function XmlPost(obj)
{
var svalue = obj.value;
//alert(svalue);
var webFileUrl = "?brc_id=" + svalue;
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
if(result != "")
{
document.all("City").length=0;
var piArray = result.split(",");
for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("|");
//alert(ary1[0].toString());
document.all("City").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
alert(result);
}
}
</SCRIPT>
</form>1.asp.cs 主要代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
myConnection = new SqlConnection(StrCn);
if(!IsPostBack)
{
down1_bind();
//State.Items.FindByValue("236").Selected =true;
int brc_id = Convert.ToInt16(Request.QueryString["brc_id"]);
//Response.Write (brc_id);
if(brc_id + 1!= 1)
{
down2_bind(brc_id);
} int IntBigType =Convert.ToInt16(State.SelectedValue);// 字符转整数
City_Bind(IntBigType); }
}
/// <summary>
/// 返回第2个下拉框需要的值给xmlhttp
/// </summary>
/// <param name="brc_id"></param>
private void down2_bind(int brc_id)
{
string mystr = "";
string sql = "sp_BigClass_List " + brc_id;
DataTable mytab = get_dt(sql); if(mytab.Rows.Count != 0)
{
for(int i=0;i<mytab.Rows.Count;i++)
{
mystr += "," + mytab.Rows[i]["BigClassId"].ToString() + "|" + mytab.Rows[i]["BigClassName"].ToString();
}
mystr = mystr.Substring(1);
}
Response.Write(mystr);
Response.End();
} /// <summary>
/// 绑定第一个下拉框
/// </summary>
private void down1_bind()
{
string sql = "sp_BigClass_List 2";
DataTable mytab = get_dt(sql);
State.DataSource = mytab;
State.DataValueField = "BigClassId";
State.DataTextField = "BigClassName";
State.DataBind();
State.Attributes.Add("onchange","XmlPost(this);");
}
。
选择省份后关联到县市 用XMLHTTP实现
县市(City)菜单 显示的内容是从BigClass表取值
BigClass
id name
1 广州
2 深圳
3 珠海
。
现在我要选择县市(City)DropDownList菜单,根据它的DataValueField值
再查找另外一个表如tab1
如我选择深圳后 sql语句应为 Select qqq from tab1 where mainid=2
然后把查到的数据显示在一文本框里 再用XMLHTTP怎么实现?
不要用DropDownList1_SelectedIndexChanged事件
因为用DropDownList1_SelectedIndexChanged,页面总是闪,客户端文本框内容也被清空了!
解决方案 »
- web用户控件赋值的问题
- 【急急】onunload中无法执行ajax方法
- 这两个语句有什么不同吗?为什么一个可以,另一个编译不了
- 关于js非常简单问题,100分解决就接贴.把js中变量输出的问题.
- html页面显示图片不清晰???
- 我想在 类里面写个函数 老出错帮我看看
- 一个Asp.Net的辣手问题(插件问题)大家有兴趣的来讨论一下。
- 大虾们!拉兄弟一把吧,请教样式表的问题
- 帮我解决个html的问题,原贴有分,解决了马上给分
- asp.net中两个页面变量传递问题
- 截取字符串的问题
- asp.net中OleDbCommand对象用不用关闭啊??怎么关?程序中我建立了好多个OleDbCommand。
function XmlPost2(obj)
{
var svalue = obj.value;
//alert(svalue);
var webFileUrl = "?S_No" + svalue;改为var webFileUrl = "?S_No=" + svalue;就可以
谢了各位