【DropDownList无刷新关联如何弄?!】
RT 问题点数:200、回复次数:26Top
1 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-27 14:43:49 得分 0
我很诚意滴~~
谢谢Top
2 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-27 14:46:34 得分 0
晕 没人Top
3 楼jc15271149(奶皮儿)回复于 2006-07-27 14:46:55 得分 10
ajax 小山的blog上边有Top
4 楼zhjg136(天星)回复于 2006-07-27 14:47:08 得分 0
http://singlepine.cnblogs.com/archive/2005/12/20/301009.htmlTop
5 楼zhjg136(天星)回复于 2006-07-27 14:48:18 得分 10
http://singlepine.cnblogs.com/archive/2005/10/19/257954.htmlTop
6 楼yuesongboy(温柔一刀)回复于 2006-07-27 14:48:27 得分 10
http://www.google.com/search?hl=zh-CN&ie=GB2312&oe=GB2312&newwindow=1&domains=cnblogs.com&q=%22%CE%DE%CB%A2%D0%C2%22%22%C1%AC%B6%AF%22%22DropDownList%22&btnG=%CB%D1%CB%F7&sitesearch=cnblogs.comTop
7 楼seesea101(狗尾草)回复于 2006-07-27 14:53:14 得分 10
Ajax实现无刷新三联动下拉框 http://singlepine.cnblogs.com/archive/2006/06/01/257954.html
XmlHttp实现无刷新三联动下拉框
http://singlepine.cnblogs.com/archive/2005/10/31/265678.aspx
ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单
http://hover.cnblogs.com/archive/2005/01/17/92871.aspx
网上搜的,我以前用过第一个,感觉不太容易控制。Top
8 楼nZAI(喃样)回复于 2006-07-27 15:05:49 得分 10
可以来我这看看
http://nzai.cnblogs.com/archive/2006/07/03/ICallbackEventHandler.htmlTop
9 楼wjjdnajj(色空)回复于 2006-07-27 15:10:15 得分 5
使用ajax就很好了,jfTop
10 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-27 15:20:16 得分 0
See See First~~Top
11 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-27 15:20:50 得分 0
哪里有的给个地址撒Top
12 楼hymxtang(书童)回复于 2006-07-27 15:32:50 得分 5
MarkTop
13 楼zhangxiaopin(zxp)回复于 2006-07-27 15:38:25 得分 5
//*****使用jsTop
14 楼zhangxiaopin(zxp)回复于 2006-07-27 15:41:12 得分 5
//****先将数据读取客户端,然后用js控制Top
15 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-07-28 09:21:18 得分 0
<%@ Page language="c#" Codebehind="级联DropDownList无刷新.aspx.cs" AutoEventWireup="false" Inherits="bsTest2005_8_16.Samples.级联DropDownList无刷新" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>级联DropDownList无刷新</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">
function drop1(index1)
{
document.getElementById("hid1").value = index1;
document.all["DropDownList1"].selectedIndex = index1;
while(document.all["DropDownList2"].options.length>1)
document.all["DropDownList2"].options.remove(1);
while(document.all["DropDownList3"].options.length>1)
document.all["DropDownList3"].options.remove(1);
if(index1>0)
{
var selected1 = new Array();
selected1 = allData[index1-1];
var i;
for(i=0;i<selected1.length;i++)
{
var oOption = document.createElement("OPTION");
document.all["DropDownList2"].options.add(oOption);
oOption.innerText = selected1[i][0][1];
oOption.value = selected1[i][0][0];
}
}
}
function drop2(index2)
{
document.getElementById("hid2").value = index2;
document.all["DropDownList2"].selectedIndex = index2;
while(document.all["DropDownList3"].options.length>1)
document.all["DropDownList3"].options.remove(1);
if(index2>0)
{
var selected2 = new Array();
selected2 = allData[document.all["DropDownList1"].selectedIndex-1][index2-1][1];
var i;
for(i=0;i<selected2.length;i++)
{
var oOption = document.createElement("OPTION");
document.all["DropDownList3"].options.add(oOption);
oOption.innerText = selected2[i][1];
oOption.value = selected2[i][0];
}
}
}
function drop3(index3)
{
document.getElementById("hid3").value = index3;
document.all["DropDownList3"].selectedIndex = index3;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server" DataTextField="field2" DataValueField="field1">
<asp:ListItem> - - - - </asp:ListItem>
</asp:DropDownList>
<asp:DropDownList id="DropDownList2" runat="server">
<asp:ListItem> - - - - </asp:ListItem>
</asp:DropDownList>
<asp:DropDownList id="DropDownList3" runat="server">
<asp:ListItem> - - - - </asp:ListItem>
</asp:DropDownList> <input type="hidden" value="0" id="hid1" runat="server"><input type="hidden" value="0" id="hid2" runat="server"><input type="hidden" value="0" id="hid3" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 344px; POSITION: absolute; TOP: 64px" runat="server"
Text="Button"></asp:Button>
<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 408px; POSITION: absolute; TOP: 64px" runat="server"></asp:TextBox>
</form>
</body>
</HTML>
Top
16 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-07-28 09:21:33 得分 95
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace bsTest2005_8_16.Samples
{
/// <summary>
/// 级联DropDownList无刷新 的摘要说明。
/// </summary>
public class 级联DropDownList无刷新 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.DropDownList DropDownList3;
private DataTable dt1 = null;
private DataTable dt2 = null;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.HtmlControls.HtmlInputHidden hid1;
protected System.Web.UI.HtmlControls.HtmlInputHidden hid2;
protected System.Web.UI.HtmlControls.HtmlInputHidden hid3;
private DataTable dt3 = null;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
LoadData();
if(!IsPostBack)
{
this.DropDownList1.DataSource = dt1;
this.DropDownList1.DataBind();
this.DropDownList1.Items.Insert(0,new ListItem(" - - - - ",""));
this.DropDownList1.Attributes.Add("onchange","drop1(this.selectedIndex);");
this.DropDownList2.Attributes.Add("onchange","drop2(this.selectedIndex);");
this.DropDownList3.Attributes.Add("onchange","drop3(this.selectedIndex);");
}
Page.RegisterStartupScript("js",this.CreateJSArray());
}
private void LoadData()
{
dt1 = new DataTable();
dt1.Columns.Add("field1");
dt1.Columns.Add("field2");
dt1.Rows.Add(new object[]{"gd","广东"});
dt1.Rows.Add(new object[]{"gx","广西"});
dt1.Rows.Add(new object[]{"fx","福建"});
dt2 = new DataTable();
dt2.Columns.Add("field1");
dt2.Columns.Add("field2");
dt2.Columns.Add("shengfen");
dt2.Rows.Add(new object[]{"sz","深圳","gd"});
dt2.Rows.Add(new object[]{"dg","东莞","gd"});
dt2.Rows.Add(new object[]{"zs","中山","gd"});
dt2.Rows.Add(new object[]{"zh","珠海","gd"});
dt2.Rows.Add(new object[]{"km","昆明","gx"});
dt2.Rows.Add(new object[]{"gl","桂林","gx"});
dt2.Rows.Add(new object[]{"fz","福州","fx"});
dt2.Rows.Add(new object[]{"st","汕头","fx"});
dt3 = new DataTable();
dt3.Columns.Add("chengshi");
dt3.Columns.Add("name");
dt3.Columns.Add("code");
dt3.Rows.Add(new object[]{"sz","深圳-wefawe","gd1"});
dt3.Rows.Add(new object[]{"dg","东莞-awef","gd2"});
dt3.Rows.Add(new object[]{"zs","中山-ewga","gd3"});
dt3.Rows.Add(new object[]{"zh","珠海-wega","gd4"});
dt3.Rows.Add(new object[]{"km","昆明-gawef","gx1"});
dt3.Rows.Add(new object[]{"gl","桂林-gaw3","gx2"});
dt3.Rows.Add(new object[]{"fz","福州-awg3","fx1"});
dt3.Rows.Add(new object[]{"st","汕头-dfaewf","fx2"});
dt3.Rows.Add(new object[]{"sz","深圳-IOEPRG","gd5"});
dt3.Rows.Add(new object[]{"dg","东莞-J5AQ5","gd6"});
dt3.Rows.Add(new object[]{"zs","中山-VAWER","gd7"});
dt3.Rows.Add(new object[]{"zh","珠海-BAER","gd8"});
dt3.Rows.Add(new object[]{"km","昆明-BAW3","gx5"});
dt3.Rows.Add(new object[]{"gl","桂林-BA4T","gx6"});
dt3.Rows.Add(new object[]{"fz","福州-FGAWH","fx5"});
dt3.Rows.Add(new object[]{"st","汕头-A3YA3","fx6"});
}
private string CreateJSArray()
{
if(ViewState["JSArray"]!=null)
{
return ViewState["JSArray"].ToString();
}
else
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("var allData = new Array("+dt1.Rows.Count+");");
for(int i=0;i<dt1.Rows.Count;i++)
{
string shengfen = dt1.Rows[i][0].ToString();
DataRow[] rows2 = dt2.Select("[shengfen]='"+shengfen+"'");
sb.Append("allData["+i.ToString()+"] = new Array("+rows2.Length+");");
for(int j=0;j<rows2.Length;j++)
{
string chengshi = rows2[j][0].ToString();
DataRow[] rows3 = dt3.Select("[chengshi]='"+chengshi+"'");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0][0] = '"+rows2[j][0].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0][1] = '"+rows2[j][1].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1] = new Array("+rows3.Length+");");
for(int k=0;k<rows3.Length;k++)
{
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"][0] = '"+rows3[k][2].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"][1] = '"+rows3[k][1].ToString()+"';");
}
}
}
sb.Append("drop1(document.getElementById('hid1').value);");
sb.Append("drop2(document.getElementById('hid2').value);");
sb.Append("drop3(document.getElementById('hid3').value);");
sb.Append("</script>");
ViewState["JSArray"] = sb.ToString();
return sb.ToString();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
string a = this.hid1.Value;//取选中行号
string aa = Request.Form["DropDownList1"];//取选中的值
string b = this.hid2.Value;//取选中行号
string bb = Request.Form["DropDownList2"];//取选中的值
string c = this.hid3.Value;//取选中行号
string cc = Request.Form["DropDownList3"];//取选中的值
this.TextBox1.Text = a +" - "+ b + " - " +c;
DataRow dr;
}
}
}
Top
17 楼greki(锐╃→)回复于 2006-07-28 09:33:08 得分 5
ajaxTop
18 楼smalladam(强者的孤独---达到一定的高度 即可体会...)回复于 2006-07-28 09:41:30 得分 5
ajax jfTop
19 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2006-07-28 09:48:56 得分 5
markTop
20 楼angelhyli(雨儿)回复于 2006-07-28 09:51:57 得分 5
以前我用js+xmlhttp
现在用ajax.Top
21 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-28 10:03:50 得分 0
想不到啊
想不到~~~
Top
22 楼lw7210(风中邪神)回复于 2006-07-28 10:29:03 得分 5
当选取一个项后,你没有把值返回服务器,在属性中设下下就可以了。Top
23 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2006-07-28 11:27:35 得分 0
结帖了哈 给分分~~Top
24 楼czq9966(宁录)(毛主席领导咱闹革命……)回复于 2006-07-28 11:28:01 得分 5
UPTop
25 楼wen98091(雪)回复于 2006-07-28 12:13:14 得分 5
要么坐在xml,要么写在代码里,
总是要提前置放在什么地方才行。Top
26 楼hanchi8008(寒池)回复于 2006-07-28 17:26:06 得分 0
markTop




