我看过一些贴子,我用起来的时候有一些问题
1。为什么第一次选择省的时候,在代码response.end()的时候会停留一下(2-3秒),然后跳转的错误处理,错误为 线程正在停止
2。因为我要用到梅花雨控件,所以我把webconfig里的
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
把原来的utf-8改为了gb2312,但是连动就不会执行(好象一定要utf-8),这是为什么?
3。我在页面上放了一个button,在事件中想得到选择的省和市的编号(用了DataTextField和DataValueField),可以得到省对应的编号,但是市的编号为空,之后市(ddlCity)控件里面也为空了,这是为什么?怎么样可以得到市的值啊?如果哪为大侠有做好的例子,请发给我谢谢,不要把代码贴进来(因为我试过有些帖里面的代码,总归些问题) 邮箱:[email protected]
解决问题后一定高分相赠,再次万分感谢!!
1。为什么第一次选择省的时候,在代码response.end()的时候会停留一下(2-3秒),然后跳转的错误处理,错误为 线程正在停止
2。因为我要用到梅花雨控件,所以我把webconfig里的
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
把原来的utf-8改为了gb2312,但是连动就不会执行(好象一定要utf-8),这是为什么?
3。我在页面上放了一个button,在事件中想得到选择的省和市的编号(用了DataTextField和DataValueField),可以得到省对应的编号,但是市的编号为空,之后市(ddlCity)控件里面也为空了,这是为什么?怎么样可以得到市的值啊?如果哪为大侠有做好的例子,请发给我谢谢,不要把代码贴进来(因为我试过有些帖里面的代码,总归些问题) 邮箱:[email protected]
解决问题后一定高分相赠,再次万分感谢!!
以下为页面代码:<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList>
<SCRIPT LANGUAGE="JavaScript">
<!--
//以XML求取数据
function XmlPost(obj)
{
var svalue = obj.value;
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("DropDownList2").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("DropDownList2").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
alert(result);
}
}
//-->
</SCRIPT>
</form>以下为后台代码:private System.Data.OleDb.OleDbConnection conn;private DataTable get_dt(string sql)
{
string connstr = "Provider=MSDAORA.1;Password=aqjc;User ID=aqjc;Data Source=aqjc";
this.conn = new OleDbConnection(connstr);
this.conn.Open();
OleDbCommand myOleDbCommand = new OleDbCommand(sql,this.conn);
OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand); DataSet myDataset = new DataSet();
try
{
myData.Fill(myDataset);
}
catch(Exception ex)
{
throw ex;
} this.conn.Close();
return myDataset.Tables[0];
}private void Page_Load(object sender, System.EventArgs e)
{
string brc_id = this.Request.QueryString["brc_id"];
if(brc_id + "a" != "a")
{
this.down2_bind(brc_id);
} if(!this.IsPostBack)
{
this.down1_bind();
}
}/// <summary>
/// 返回第2个下拉框需要的值给xmlhttp
/// </summary>
/// <param name="brc_id"></param>
private void down2_bind(string brc_id)
{
string mystr = "";
string sql = "select brc_id,brc_name from asm_branch where brc_parentid = '" + brc_id + "'";
DataTable mytab = this.get_dt(sql); if(mytab.Rows.Count != 0)
{
for(int i=0;i<mytab.Rows.Count;i++)
{
mystr += "," + mytab.Rows[i][0].ToString() + "|" + mytab.Rows[i][1].ToString();
}
mystr = mystr.Substring(1);
}
this.Response.Write(mystr);
this.Response.End();
}/// <summary>
/// 绑定第一个下拉框
/// </summary>
private void down1_bind()
{
string sql = "select brc_id,brc_name from asm_branch where brc_level = '1'";
DataTable mytab = this.get_dt(sql);
this.DropDownList1.DataSource = mytab;
this.DropDownList1.DataValueField = "brc_id";
this.DropDownList1.DataTextField = "brc_name";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onchange","XmlPost(this);");
}
我想问一下,如何通过button事件得到dropdownlist2的值所对应的编号呢
就是可以直接运行的.....
-------
你是想在客户端还是服务端呢?
客户端:
document.all("dropdownlist2").options[document.all("dropdownlist2").selectedIndex].text;
服务端:
this.dropdownlist2.SelectedItem.Text;
{
if (n<0) return ;
var e = eval("document.all."+ChangeObj);
for (var i=e.options.length; i>-1; i--)
e.remove(i);
var show = eval(jsShow+"["+ n+"]"); //得到数组名
var val=eval(jsVal+"["+ n+"]");
if (val.length<1) return;
for (var i=0; i<val.length; i++)
e.options.add(new Option(show[i], val[i]));
}
然后你必须在客户端写对应的js变量,例如
var area_show = new Array();
var area_value = new Array();
var point_show = new Array();
var point_value = new Array();
area_show[0]='广东';
area_value[0]=510000;
point_show[0]=new Array();
point_value[0]=new Array();
area_show[1]='广州';
area_value[1]=510100;
point_show[1]=new Array();
point_value[1]=new Array();
point_show[1][0]='天河';
point_value[1][0]=1;
point_show[1][1]='河南';
point_value[1][1]=1;
point_show[1][2]='火车站';
point_value[1][2]=3;
area_show[2]='深圳';
area_value[2]=510200;
point_show[2]=new Array();
point_value[2]=new Array();
point_show[2][0]='南山';
point_value[2][0]=1;
point_show[2][1]='龙岗';
point_value[2][1]=1;
point_show[2][2]='盐田';
point_value[2][2]=3;然后再第一个dropdownlist里面写 onchange="Do_Link_Change('npoint',this.selectedIndex,'point_value','point_show')"
"npoint"是第二个dropdownlist的id
我是想在服务器端得到,但是只要页面一刷新,DropDownList2的值就为空了,所以你的那句话是错误的,不能那样取,不知道你有没有办法解决呢?用SelectedItem.Text可以得到对应的编号吗?(假如我的dropdowlist2显示的是北京,可以把对应北京的编号1取出来吗?如果是直接数据库绑定的,可以用DataValueField来得到)To:boytomato(深爱一人叫颖的女孩!) 大哥:
你的方法我也试了,可以运行起来没有反应,不知道大哥你有没有例子,发给我看一下好吗,还有就是如果我在页面上加一个button,会显示缺少runat=server,不知道你是不是特意没有写啊(所以你的代码我暂时还不能用,因为我一定要用到服务器端控件的,要把数据保存到数据库中的),不知道大哥你能不能修改一下啊
webform2.aspx是那个连动.....改一下连接......
-------
那是你加载数据有问题,你根据我的那个例子,去实际试一下.
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312" =============编码问题。不一定是utf-8 但是.aspx .js 等文件的格式要一致,要么都是utf-8的要么都是gb2312的。???????????????3。我在页面上放了一个button,在事件中想得到选择的省和市的编号(用了DataTextField和DataValueField),可以得到省对应的编号,但是市的编号为空,之后市(ddlCity)控件里面也为空了,这是为什么?怎么样可以得到市的值啊?=======================用js脚本填充的下拉列表框后台是不认得牐就是说虽然你用js的方式填充了“市”页面上可以看到效果但是asp.net是不承认的。解决方法就是用一个隐藏的文本框,或是隐藏域来记录市的信息。
我看了梅花雨控件的代码,可以找不到关于编码的设置,那怎么样才能把.aspx,.js文件的编码设置为一致呢
用记事本打开,然后存时选择保存类型为
Unicode