关于listbox的回发问题
<table cellSpacing= "0 " cellPadding= "0 " width= "100% " border= "0 ">
<tr height= "25 "> <td> 主管领导: <asp:dropdownlist id= "lsdPID " Runat= "server " AutoPostBack= "True "> </asp:dropdownlist> </td>
<td colSpan= "2 "> </td>
</tr>
<tr>
<td width= "35% "> <asp:listbox id= "lbxCID " Width= "98% " Runat= "server " SelectionMode= "Multiple " Height= "90 "> </asp:listbox> </td>
<td noWrap width= "1% "> <input class= "btn_Xp_Bg " onmouseover= "this.className= 'btn_Xp_Bg_Over ' " onclick= "add() "
onmouseout= "this.className= 'btn_Xp_Bg ' " type= "button " value= "添加 " name= "btnAdd ">
<br>
<br>
<input class= "btn_Xp_Bg " onmouseover= "this.className= 'btn_Xp_Bg_Over ' " onclick= "del() "
onmouseout= "this.className= 'btn_Xp_Bg ' " type= "button " value= "删除 " name= "btnDel ">
</td>
<td> <asp:listbox id= "lbx " Width= "200 " Runat= "server " SelectionMode= "Multiple " Height= "90 " EnableViewState=True> </asp:listbox> </td>
</tr>
</table>
初始目的:通过选择主管领导(lsdPID)调出单位(lbxCID),然后添加单位(lbx),lsdPID选项改变时lbxCID也跟着改变,但保持lbx内容不变,然后将lbx的内容提交数据库。
问题:在lsdPID回发时,lbx会被清空,请问为什么?
------解决方案--------------------当然会被清空。又不是服务端的进行更改值。现在你的操作只是客户端的对listbox进行更改。
最简单的办法。是当添加的时候。用一个隐藏域记录另一个listbox的值。操作完毕竟后
Request[ "隐藏域 "]。不然一回发。会将隐藏域的值也清空。
------解决方案--------------------呵呵。虽说listbox是服务端控件。但也是模拟html控件.客户端操作时候不通过服务端并不会记录状态的。状态为空。一回发也就还是为空。
------解决方案--------------------在前台做的,后台是得不到选项的,如果取值可用
Request.Form[ "名称 "]得到.
如果要保存选项,要用一个hidden把所有选项的值保存起来,然后在后台用AddItem来添加.