DropDownList加入客户端验证遇到的问题极其解决的方案

问题描述
引用

this.WL_CJHPBBH.Attributes.Add("onchange","SetBuyPlanOID();");  
  不管客户端返回true还是false;页面都闪烁了一下,也就是执行了服务器端事件  
   
  但是如果用  
  this.WL_CJHPBBH.Attributes.Add("onchange","return   SetBuyPlanOID();");  
  不管客户端返回true还是false;都不会去执行服务器端事件

如果一定要让DropDownList回送,不一定要将AutoPostBack设置为ture,而是通过在JS里面控制是否要回送
实现的方法,如下:
在后台加入这样的属性
this.ddlFolder.Attributes.Add("onchange", "checkSelectInDdl('gvMail','move');");//通过调用客户端的JS确定是否触发DropDownList的回送操作

JS函数
//检验DropDownList选中选项的时候,复选框有没被选中
function checkSelectInDdl(gridviewName,operType)
{ 
    chs = document.getElementById(gridviewName).getElementsByTagName("INPUT");
    n = 0;
    for( i = 0; i<chs.length; i++ )
    {
         if( chs[i].checked)
         {
            n++;
         }
    }

    if( n == 0 )
    {
        alert("您没有选中任何记录,请选择...");  
    }
    else
    { 
        switch (operType)
        {
            case "mark": if(confirm("您选中了" + n + "条记录,确定要设置吗?"))
                        { 
                            document.form1.submit(); break;//提交表单,即实现回送
                            
                         }
            case "move": if(confirm("您选中了" + n + "条记录,确定要移动吗?")) 
                        {
                            document.form1.submit(); break;
                        }   
        }   
        
    }
}

你可能感兴趣的:(list)