日期:2014-05-20  浏览次数:20380 次

客户端的javascript改变了asp.net的Dropdownlist控件的项目,后台代码中如何获取选定值
类似城市列表,初始化的时候,没有任何项目,根据客户选择,javascript填充其中的列表,form提交后,.cs后台代码如何获取DropDownList的取值?

------解决方案--------------------
Request.Form[ "名称 "] 但是要保存选项还要花点力气
------解决方案--------------------
客户端赋值dropdownlist的value值后,后台代码可以直接用selectedvalue读的吧
------解决方案--------------------
用客户端控件.
------解决方案--------------------
Request.Form[ "dropdownlistId "]

------解决方案--------------------
呵呵,由於Dropdownlist控件的特性使然,如果是前台JS賦的值,後台代碼不能直接讀取Dropdownlist的值,而且樓主會發現,Dropdownlist的值又回到初始時空的狀態。
解決的方法是:
添加一個TextBox文件框,並把它的設為不可見。然後選擇Dropdownlist時,用js把值賦給TextBox,提交時在後台讀取TextBox裡的值即可。
------解决方案--------------------
前台用 <input type= "hidden " id= "txta " name= "txta " runat= "server " /> 保存.
后台用 txta.Value取值.
------解决方案--------------------
更正:TextBox不能設為不隱藏,這樣後台也會讀不到TextBox的值,^_^ 但可以把TextBox的前景色設為和頁面背景一樣的顏色,實現“不可見”的效果。

//後台Page_Load裡添加前台事件:
DropDownList1.Attributes.Add( "onchange ", "ToTextBox() ");


//前台定議事件:
function ToTextBox(){
document.getElementById( "TextBox1 ").value=document.all( "DropDownList1 ").value;
}
------解决方案--------------------
呵呵,用greatqn(一剑)兄說的方式,定義一個隱藏的input也是一個選擇!