请问如何用数组和三个listbox实现中国省市县的列表! 一般将这种东西放在数据库中再调出来是因为表之间有关连。数组怎么能有关连呢?我是不知道。你是不是考虑用有键值对的Hashtable和SortedList 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为不想每次选择的时候都访问一下数据库,所以才想到了用数组,可是我也觉得好像数组不是很合适,看了以前的帖子,有大虾建议用xml,但是就是不知道该怎么组织xml文件,给个提示吧,谢谢 我是用的数据库,一次读出所有省市数据,然后用js代码写入脚本,不过网上有很多下拉列表框省市联动的例子,不用这么复杂,如:这个是用XML实现联动的http://dev.csdn.net/article/38/38963.shtm如果想在客户端用数组的话,可以参考这个http://www.e-cn-e.com/java/6/27.htm 谢谢ma_ta,我还是想问一下,如果是在服务器端用C#来写的话,该怎么做呢?运行在服务器端的话是不是很占用服务器的资源呢? 算了,我还是用javascript来实现吧,如果用服务器控件会比较耗资源的 如果要在服务器端写的话,下面是部分页面Html代码和c#后台代码:<SELECT id="STATE" style="Z-INDEX: 105; LEFT: 264px; WIDTH: 152px; POSITION: absolute; TOP: 40px" onchange="provChanged(selectedIndex)" name="STATE" runat="server"></SELECT><SELECT id="CITY" style="Z-INDEX: 107; LEFT: 488px; WIDTH: 152px; POSITION: absolute; TOP: 40px" name="CITY" runat="server"></SELECT>private void LoadStateCity(){ DB2Conn db=new DB2Conn(); string strSQL1="select * from STATE"; string strSQL2="select * from CITY ORDER BY STATECODE"; DataSet dsSTATE = db.GetData(strSQL1); DataSet dsCITY = db.GetData(strSQL2); string scriptStr="<script defer>\n"; string ar1="var ar1 = ["; string ar2="var ar2 = ["; DataView dvCITY = new DataView(dsCITY.Tables[0]); for(int i=1;i<=dsSTATE.Tables[0].Rows.Count;i++) { ar1=ar1+"[['"+dsSTATE.Tables[0].Rows[i-1]["STATECODE"]+"'],["; ar2=ar2+"[['"+dsSTATE.Tables[0].Rows[i-1]["STATENAME"]+"'],["; dvCITY.RowFilter = "[STATECODE] ="+dsSTATE.Tables[0].Rows[i-1]["STATECODE"]; foreach(DataRowView Row in dvCITY) { ar1=ar1+"'"+Row["CITYCODE"]+"',"; ar2=ar2+"'"+Row["CITYNAME"]+"',"; } ar1=ar1.Substring(0,ar1.Length-1); ar2=ar2.Substring(0,ar2.Length-1); ar1=ar1+"]],"; ar2=ar2+"]],"; } ar1=ar1.Substring(0,ar1.Length-1); ar2=ar2.Substring(0,ar2.Length-1); ar1=ar1+"];\n"; ar2=ar2+"];\n"; scriptStr=scriptStr+ar1+"\n"+ar2+"\n"; scriptStr=scriptStr+"for (var i=0;i<ar1.length;i++)\n"; scriptStr=scriptStr+"ManaNews.STATE.options[ManaNews.STATE.options.length]=new Option(ar2[i][0],ar1[i][0])\n"; scriptStr=scriptStr+"function provChanged(i)\n"; scriptStr=scriptStr+"{\n"; scriptStr=scriptStr+"ManaNews.CITY.innerHTML=''\n"; scriptStr=scriptStr+"for (var j=0;j<ar1[i][1].length;j++)\n"; scriptStr=scriptStr+"ManaNews.CITY.options[ManaNews.CITY.options.length]=new Option(ar2[i][1][j],ar1[i][1][j])\n"; scriptStr=scriptStr+"}\n"; scriptStr=scriptStr+"provChanged(0);\n"; scriptStr=scriptStr+"</script>\n"; Response.Write(scriptStr);}数据库相关表结构如下:省份(STATE):省份编码 STATECODE省份名称 STATENAME城市(CITY):城市编码 CITYCODE省份编码 STATECODE城市名称 CITYNAME取值用这个:Textbox2.Text=Request.Form["STATE"] + Request.Form["CITY"]; c# 正则问题 求教一个正则表达式 C#中用代碼怎樣實現拖動應用程序中的空件? 时间差的问题 查询问题,请高手指点 有没有什么工具来判断我的程序的运行效率? 问一个Oracle数据连接的问题~~~~~~~~ 在ListView中使用LargeIcon的时候,怎么才能让ListView只有横向的滚动轴,去掉纵向的滚动轴??? 怎么控制自定义用户控件中的控件属性? 请问,在子窗口关闭,父窗口显示的时候,为何Activated中的代码不能执行? 小弟想弄清楚vpn的实际概念!请大家帮忙!急啊! 求一个xml的递归方法~~~~~~~在线等!!!解决即散分
这个是用XML实现联动的
http://dev.csdn.net/article/38/38963.shtm
如果想在客户端用数组的话,可以参考这个
http://www.e-cn-e.com/java/6/27.htm
我还是想问一下,如果是在服务器端用C#来写的话,该怎么做呢?运行在服务器端的话是不是很占用服务器的资源呢?
<SELECT id="STATE" style="Z-INDEX: 105; LEFT: 264px; WIDTH: 152px; POSITION: absolute; TOP: 40px"
onchange="provChanged(selectedIndex)" name="STATE" runat="server">
</SELECT>
<SELECT id="CITY" style="Z-INDEX: 107; LEFT: 488px; WIDTH: 152px; POSITION: absolute; TOP: 40px"
name="CITY" runat="server">
</SELECT>private void LoadStateCity()
{
DB2Conn db=new DB2Conn();
string strSQL1="select * from STATE";
string strSQL2="select * from CITY ORDER BY STATECODE";
DataSet dsSTATE = db.GetData(strSQL1);
DataSet dsCITY = db.GetData(strSQL2);
string scriptStr="<script defer>\n";
string ar1="var ar1 = [";
string ar2="var ar2 = [";
DataView dvCITY = new DataView(dsCITY.Tables[0]);
for(int i=1;i<=dsSTATE.Tables[0].Rows.Count;i++)
{
ar1=ar1+"[['"+dsSTATE.Tables[0].Rows[i-1]["STATECODE"]+"'],[";
ar2=ar2+"[['"+dsSTATE.Tables[0].Rows[i-1]["STATENAME"]+"'],[";
dvCITY.RowFilter = "[STATECODE] ="+dsSTATE.Tables[0].Rows[i-1]["STATECODE"];
foreach(DataRowView Row in dvCITY)
{
ar1=ar1+"'"+Row["CITYCODE"]+"',";
ar2=ar2+"'"+Row["CITYNAME"]+"',";
}
ar1=ar1.Substring(0,ar1.Length-1);
ar2=ar2.Substring(0,ar2.Length-1);
ar1=ar1+"]],";
ar2=ar2+"]],";
}
ar1=ar1.Substring(0,ar1.Length-1);
ar2=ar2.Substring(0,ar2.Length-1);
ar1=ar1+"];\n";
ar2=ar2+"];\n";
scriptStr=scriptStr+ar1+"\n"+ar2+"\n";
scriptStr=scriptStr+"for (var i=0;i<ar1.length;i++)\n";
scriptStr=scriptStr+"ManaNews.STATE.options[ManaNews.STATE.options.length]=new Option(ar2[i][0],ar1[i][0])\n";
scriptStr=scriptStr+"function provChanged(i)\n";
scriptStr=scriptStr+"{\n";
scriptStr=scriptStr+"ManaNews.CITY.innerHTML=''\n";
scriptStr=scriptStr+"for (var j=0;j<ar1[i][1].length;j++)\n";
scriptStr=scriptStr+"ManaNews.CITY.options[ManaNews.CITY.options.length]=new Option(ar2[i][1][j],ar1[i][1][j])\n";
scriptStr=scriptStr+"}\n";
scriptStr=scriptStr+"provChanged(0);\n";
scriptStr=scriptStr+"</script>\n";
Response.Write(scriptStr);
}
数据库相关表结构如下:
省份(STATE):
省份编码 STATECODE
省份名称 STATENAME
城市(CITY):
城市编码 CITYCODE
省份编码 STATECODE
城市名称 CITYNAME取值用这个:
Textbox2.Text=Request.Form["STATE"] + Request.Form["CITY"];