日期:2014-05-18  浏览次数:20480 次

用javascript 控制listbox时,提交服务器时出错
我在页面中有两个listbox:   lstSource,lstDestion,在两个listBox之间,有4个按钮:   > ,> > , <, < <,       我用javascript控制按钮的事件,当点击按钮 "> "或者 "> > "时,lstSource中的项移动到lstDestion中,可是在提交服务器时,出错:
Invalid   postback   or   callback   argument.     Event   validation   is   enabled   using   <pages   enableEventValidation= "true "/>   in   configuration   or   <%@   Page   EnableEventValidation= "true "   %>   in   a   page.     For   security   purposes,   this   feature   verifies   that   arguments   to   postback   or   callback   events   originate   from   the   server   control   that   originally   rendered   them.     If   the   data   is   valid   and   expected,   use   the   ClientScriptManager.RegisterForEventValidation   method   in   order   to   register   the   postback   or   callback   data   for   validation.  
请大家帮忙看看,多谢了

------解决方案--------------------
错误提示已经说得明明白白,回发后进行了安全验证,由于用 JS 修改了控件状态,因此无法通过安全验证!

修改方法如下:

在 web.config 中写入以下配置信息,取消全部页面安全检测
<pages enableEventValidation= "false "/>

在某页顶部写入以下配置信息,取消该页面安全检测
<%@ Page EnableEventValidation= "false " %>

Over!
------解决方案--------------------
汗,全en不认得,帮顶
------解决方案--------------------
up
------解决方案--------------------
用request.form(listboxid)在后台就可以取到值
------解决方案--------------------
设置一个 HiddenField 然后把要移动的项目放到里边?这里是多此一举的。

因为后台完全可以直接读取两个 CheclBoxList 的 SelectedValue值,完全可以知道你要移动哪一个项目,根本不需要额外设计一个控件再加上一段javascript。
------解决方案--------------------
sp1234(小鸭子比小鸡的生命力顽强很多啊) 你就是个sb!不好意思 骂人了

listbox有个bug,当在客户端用javascript修改其options属性的话,比如添加、修改、删除,postback时后台无法正确获取listbox的数据!,因为listbox的viewstate没有包含item属性
一般做法是,放一个hidden input,提交时将自己感兴趣的数据转换成xml放在hidden里面,
postback时后台解析xml