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.html
------解决方案--------------------学习ing ...
ListBox服务器控件,在服务器端创建的发送在客户端,你用js添加项,并没有返回到服务器端,那么在服务器的.cs当然不知道listbox的改变了.
所以,你想在.cs代码中得到count的改变,我想你应该想办法通知服务器listbox状态的改变.
个人理解,说错莫怪!
------解决方案--------------------你用javascript改变了数据,但服务器的状态还是没有改变.
建议用个HiddenField或者TextBox存储,在CS取它的值.