当前位置: 代码迷 >> ASP.NET >> js填充的select怎么在后台取值
  详细解决方案

js填充的select怎么在后台取值

热度:7340   发布时间:2013-02-25 00:00:00.0
js填充的select如何在后台取值
C# code
<select id="select2" style="height: 108px;width:100px;"  runat="server" multiple="true">                    </select>



我用js往select2里添加了几项数据,现在用imagebutton单击事件来打印出这些项来,却打印出来是空的,


C# code
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)    {        string k = "";        for (int i = 0; i < this.select2.Items.Count; i++)        {            k += this.select2.Items[i].Text;            Response.Write(k);        }    }




------解决方案--------------------------------------------------------
填充后提交,否则后台不知道
------解决方案--------------------------------------------------------
是不是你没给text赋值啊 ,而只是给value赋值了. 正常情况下应该是有值的
------解决方案--------------------------------------------------------
用Request.Post来取
------解决方案--------------------------------------------------------
你是不是没添加成功啊?成功了怎么取不到啊,this.select2.Items[i].Text这个是不是.value啊
------解决方案--------------------------------------------------------
你前台填充后,操作的只是生产页面的DOM对象,此时后台无法获知填充数据,只能提交后后台才能处理,既然你的SLECET改造成服务器控件来,为什么不在后台直接填充----个人看法!
------解决方案--------------------------------------------------------
提交到后台以后原来用js添加的东西应该都没有了吧!!
用js添加的东西,如果想在后台用到的话,估计需要在提交到后台的之前用js获取填充到一个hidden里面的
------解决方案--------------------------------------------------------
应该可以。我来测试下
------解决方案--------------------------------------------------------
好像一回发就不行了。。。

HTML code
<html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server">    <title></title>    <script type="text/javascript">        function additemSelect() {            var sel = document.getElementById('<%=select2.ClientID %>');            sel.add(new Option("test1", 0));            sel.add(new Option("test2", 1));        }    </script></head><body>    <form id="form1" runat="server">    <div>        <select id="select2" style="height: 108px; width: 100px;" runat="server">        </select>        <input type="button" id="btn1" value="ADD" onclick="additemSelect()" />        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />    </div>    </form></body></html>
------解决方案--------------------------------------------------------
JScript code
window.onload = function(){                var o = document.getElementById("select1");                for(var i=0;i<50;i++){                    o.options.add( new Option("UserName_"+i,i))                }            }
------解决方案--------------------------------------------------------
这不奇怪,本来就是这样的,如果你要在服务器端获取的话,可以这样:
在提交时用javascript选中所有下拉框中的项,这样提交后通过Request.Form["下拉框name"]就能取到所有选中项的值,这个值是一个以,分隔的字符串

===================================================
ASP.NET WebForm和ASP.NET MVC分页最终解决之道
  相关解决方案