状态保存 通过客户端脚本向服务器端控件增加值,如在客户端向服务器端控件DropDownList增加Items,怎样在PostBack后保存增加后的值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是保存选中的值,还是保存增加的Items 如果是保存选中的值,打开页面执行后的html源码,找到此DropDownList服务器控件客户端的ID号,在服务器端用Request["服务器控件客户端的ID号"]接收 这要看你是如果增加值。如果你修改options,毫无作用,根本不会传递到服务器端。你可以使用一个 HiddenField,然后在客户端把options的变动存入这个字段(组合成字符串),然后在服务器端解析这个字符串来更新DropDownList。 to sp1234(自然界是没有正邪之分的,全是人的伎俩。) : 这样很麻烦,看还有其它好方法没 “找到此DropDownList服务器控件客户端的ID号”这样去凑ClientID的方法不可靠。ClientID每一次都可能不同。如果你恰巧暂时发现它们一样,那是因为你刚开始写这个页面,太简单了。随着你修改页面、移动位置、绑定控件、自己创建其它动态控件....用眼睛去看某一次输出的ClientID并且硬编码进程序,也太诋毁asp.net的功能了。“在服务器端用Request["服务器控件客户端的ID号"]接收”,一定要先了解接收到的资料的内容之后再说。 前台:var o = new Option(); o.innerText = "A"; o.value = "1"; Form1.DropDownList1.appendChild(o); o = new Option(); o.innerText = "B"; o.value = "2"; Form1.DropDownList1.appendChild(o); SaveValue();function SaveValue() { var str = ""; for(var i=0;i<Form1.DropDownList1.options.length;i++) { var o = Form1.DropDownList1.options[i]; str += o.innerText +","+o.value+"|"; } Form1.Hidden1.value =str; }后台:if(this.IsPostBack) { string sValue = this.Hidden1.Value.Trim(); string[] ary = sValue.Split('|'); this.DropDownList1.Items.Clear(); for(int i=0;i<ary.Length;i++) { if(ary[i].Split(',').Length!=2) continue; this.DropDownList1.Items.Add(new ListItem(ary[i].Split(',')[0],ary[i].Split(',')[1])); } .net 文件下载经典问题 请教如何从html代码中截取一部分并且填入相应的textBox中 字符串问题 在线聊天程序? 怎样在WEB窗体中实现类似menutrip功能 [求助]为何能通过http方式远程访问web.config文内容?? 向有经验的高手求教。 页面跳转参数传递问题 .net下如何安装设置水晶报表啊? DropDownList的问题? 有关自定义函数的参数(DataGridCommandEventArgs)传递!急,万分感谢! assignment operator 运算不能以text数据类型作为参数
打开页面执行后的html源码,
找到此DropDownList服务器控件客户端的ID号,
在服务器端用Request["服务器控件客户端的ID号"]接收
这样很麻烦,看还有其它好方法没
var o = new Option();
o.innerText = "A";
o.value = "1";
Form1.DropDownList1.appendChild(o);
o = new Option();
o.innerText = "B";
o.value = "2";
Form1.DropDownList1.appendChild(o);
SaveValue();function SaveValue()
{
var str = "";
for(var i=0;i<Form1.DropDownList1.options.length;i++)
{
var o = Form1.DropDownList1.options[i];
str += o.innerText +","+o.value+"|";
}
Form1.Hidden1.value =str;
}
后台:
if(this.IsPostBack)
{
string sValue = this.Hidden1.Value.Trim();
string[] ary = sValue.Split('|');
this.DropDownList1.Items.Clear();
for(int i=0;i<ary.Length;i++)
{
if(ary[i].Split(',').Length!=2)
continue;
this.DropDownList1.Items.Add(new ListItem(ary[i].Split(',')[0],ary[i].Split(',')[1]));
}