当前位置: 代码迷 >> ASP.NET >> asp.net中ListBox的小疑点(VS2003)
  详细解决方案

asp.net中ListBox的小疑点(VS2003)

热度:2511   发布时间:2013-02-26 00:00:00.0
asp.net中ListBox的小问题(VS2003)
我在页面中添加了一个ListBox   它的ID为sel,在客户端通过JS往ListBox中添加了多条记录,然后提交到服务器端,可是服务器端始终显示sel.Items.Count=0;而客户端:alert(Form1.sel.length)   却是大于0的数字.

这是客户端添加记录的JS函数
function   addstr()
{
var   oOption   =   document.createElement( "OPTION ");
oOption.text= "法拉利 ";
oOption.value= "4 ";
Form1.sel.add(oOption);
                  alert(Form1.sel.length);

}

------解决方案--------------------------------------------------------
Items.Count中显示的其实不是ListBox中的项数,实际上Items是在该控件数据绑定时创建的,在 <ItemTemplate> </ItemTemplate> 中迭代绑定时,每迭代一次,Items.Count就 + 1,而在页面刚载入的时候Items.Count实际是0,并且其中根本没有任何item。这是本人测试的结果

------解决方案--------------------------------------------------------
不行的
建议自己写js控制
使用hidden
http://www.cnblogs.com/calmzeal/archive/2006/07/26/460068
------解决方案--------------------------------------------------------
学习ing ...

ListBox服务器控件,在服务器端创建的发送在客户端,你用js添加项,并没有返回到服务器端,那么在服务器的.cs当然不知道listbox的改变了.

所以,你想在.cs代码中得到count的改变,我想你应该想办法通知服务器listbox状态的改变.

个人理解,说错莫怪!
------解决方案--------------------------------------------------------
你用javascript改变了数据,但服务器的状态还是没有改变.
建议用个HiddenField或者TextBox存储,在CS取它的值.
  相关解决方案