用js隐藏页面上某个控件后,点击button后页面上的这个控件又会出现,我知道是页面重新刷新导致的,但是用了ajax后也还是这样,希望有懂的人能给个详细的例子,看看这个问题如何解决asp.netajaxbutton

解决方案 »

  1.   

    你可以加一个hidden,隐藏时给hidden赋一个值,如1
    后台page_load里判断hidden值是不是"1",如果是"1",在后台隐藏你刚隐藏的那个控件,这样就不怕刷新了
      

  2.   

    要隐藏的东西必须得调js才行,而我在page_load中如果调RegisterStartupScript去调用前台js函数会出现找不到对象的问题,因为页面还没有把那个控件加载上,就算能用setinterval函数最终可以等到控件加载上后再执行隐藏函数也会有其他的各种问题,现在就想知道能不能让那个页面不刷新,这样问题就都能简单的解决了。对了,补充一个情况,我的那个button是要往数据库插入数据,所以必须得用服务器控件
      

  3.   

    js里也可以给hidden赋值
    这个hidden的runat="server",隐藏时用js在前台给它赋值1,后台page_load里判断其值是否是1...
      

  4.   

    页面放一个隐藏表单域(hiddenfield),用JS控制控件的显示隐藏的时候把显示的状态放入隐藏表单域中,这样在BUTTON的后台事件里通过隐藏表单域的值就可以知道控件的显示隐藏状态了。
    至于ajax,估计你是把隐藏的控件也放在了updatepanel里面的,这样的话和不用ajax效果是一样的。
      

  5.   

    点击button不要刷新页面就行了,button的onclick的事件结尾加上一句  return false;
      

  6.   

    你在Page_load里做个判断不可以吗?
      

  7.   


        我的问题不是后台不知道状态,后台可以通过相应属性轻松获取显示状态,而是前台在页面刷新后再次渲染页面的问题,我还是想用ajax解决,因为不光这个的问题,我的这个页面还有其他一些操作也都是靠js实现的,这样就得存很多值,这些控件页面一刷新就都恢复原始状态了,如果通过在Page_Load中解决,就得用js去操作每一个控件,操作方法还不同,感觉有些麻烦,最主要的是客户端事件传入的(s,e)中的s与我getElementById获取的对象不一致,能不能给我讲解一下如何用ajax来解决,因为我用了多个uploadpanel也一样会刷新
      

  8.   

    建议你别用updatepanel了,自己写JS去控制吧。UPDATEPANEL封装的太厉害,很多时候想要灵活控制比较麻烦。