此客户端脚本正被添加到现有代码库中的按钮中。它基本上显示一个弹出窗口,只要长时间运行的进程发生,系统就会忙碌。这适用于按钮,但是btn.disabled = true行导致SelectedIndexChanged事件永远不会触发(当在按钮上使用它时,点击甚至仍会触发)。如果我注释掉那条线,那就好了。禁用该对象以防止双击。关于为什么不解雇的任何想法?此代码正在注册为客户端脚本块,因此任何更改都会影响页面上使用此代码的所有按钮。
@"<script language='javascript' type='text/javascript'>
function BB(btn, msg, btnID)
{
bb1 = new BusyBox('iBB1', 'bb1', 4, '" + ContentImageUrlPath +
@"/gears_ani_', '.gif', 125, 147, 207, msg);
btn.disabled = true;
bb1.Show();
__doPostBack(btnID,'');
return false;
}</script>";
以下是页面上显示的代码
<select id="foo" onchange="return BB(this,
'Processing','ddlRoadsAssessment');
setTimeout('__doPostBack(\'foo\',\'\')', 0)" name="foo">
答案 0 :(得分:3)
是的,如果它被禁用,那么.NET将假设它没有改变,甚至不会查看发布的值。您必须手动检查Request.Form[ddlRoadsAssessment.ClientID]
(例如,OnInit
)并将其与之前的值(例如,您可以存储在视图状态中)进行比较,如果它们不匹配,手动调用方法。
答案 1 :(得分:1)
我无法推测为什么事件不会触发以及该如何处理,但也许您可以使用readonly
代替disabled
?