在控件里,我在呈现时抛出一个按钮做回发事件,
我怎么做才可以做 到:先经过按钮的客户端判断后,符合条件的才让返回服务器端。

解决方案 »

  1.   

    在客户端用javascript来实现:
    if (不可以回传)
    {
       return false;
    }
      

  2.   

    在客户端用javascript来实现:
    if checkClick_OK
    {
       return true;
    }else{
       alert("必须返回");
       return false;
    }然后在代码中的page_load事件中写这样的代码:if (!this.ispostback){
        button1.Attributes.Add("onclick","return checkClick_OK();")
    }呵呵!
      

  3.   

    function _doPostBack(){};
    if(typeof("__doPostBack")=="function")
    {
    _doPostBack=__doPostBack;
    __doPostBack=_doPostBackNew;
    }document.attachEvent("onmousemove",_onmousemove);
    var _isPosting=false;
    var _divMask=null;function _onmousemove()
    {
    if(_divMask)
    with(_divMask.runtimeStyle)
    {
    left=event.clientX+document.body.scrollLeft-4;
    top=event.clientY+document.body.scrollTop-4;
    }
    }
    function _makeMask()
    {
    var div=document.createElement("DIV");
    with(div.runtimeStyle)
    {
    position="absolute";
    zIndex=999999;
    fontSize="1px";
    left=event.clientX+document.body.scrollLeft-4;
    top=event.clientY+document.body.scrollTop-4;
    width="8px";
    height="8px";
    cursor="wait";

    backgroundColor="gray";
    filter="alpha(opacity=10)";
    }
    try
    {
    document.body.insertAdjacentElement("BeforeEnd",div);
    div.onblur=new Function("this.focus()");
    div.focus();
    }
    catch(x){}

    if(_divMask)_divMask.removeNode(true);
    _divMask=div;
    }function _doPostBackNew(sender,args)
    {
    if(_isPosting)
    return event.returnValue=!(event.cancelBubble=true); status="正在更新页面...";
    _doPostBack(sender,args);
    _isPosting=true;
    _makeMask();
    }function _onformsubmit()
    {
    if(_isPosting)
    return event.returnValue=!(event.cancelBubble=true); _isPosting=true;
    _makeMask();
    }
    new function _attachForms()
    {
    with(new Enumerator(document.forms))
    for(;!atEnd();moveNext())
    {
    item().attachEvent("onsubmit",_onformsubmit);
    var div=document.createElement("div");
    div.runtimeStyle.width="0px";
    div.runtimeStyle.hight="0px";
    div.runtimeStyle.overflow="hidden";
    div.runtimeStyle.position="absolute";
    item(0).insertAdjacentElement("afterbegin",div);
    div.innerHTML="<INPUT TYPE=Submit name='webformpatchsubmitelement' onclick='return event.returnValue=false' id='webformpatchsubmitelement' value='webformpatchsubmitelement'/>";
    }
    }
    把这个作为 <-script src=.....js-><-/script-> 的形式Render到每个页面中就可以了。|
    如果有PageBase,则在Init的时候用RegisterClientScriptBlock放上去更好。
    因为客户没有抱怨过,所以也没有改进过。
      

  4.   

    对,在Init的时候,可以参考RegisterClientScriptBlock强行给客户端送脚本的方式,具体参见msdn就好了,类似你的效果。
      

  5.   

    直接给按钮加事件
    if(!this.ispostback)
    {
        this.button1.Attributes.Add("onclick","return(confirm(\"您确认要执行这个操作吗?\"));")
    }如此,点击弹出消息的“是”按钮,则执行后台程序,否则不执行