中国开发网: 论坛: 程序员情感CBD: 贴子 844479
Miracle: 好吧,咱说说这个需求1
“需求1是按钮,需要先js隐藏表格,再后台执行c#,完毕再执行js显示表格”

从你前面的描述来看,你做的就是一个常规的、没有ASP.NET AJAX掺和的“经典”ASP.NET页面。点击一个按钮执行查询,刷新表格显示新的查询结果。

基于这个理解,前半部分“先js隐藏表格,再后台执行c#”是一个有效的需求,只要写一个javascript function,比如function toggleDisplay(element, show){},根据show参数是true还是false来决定是隐藏某个元素;然后在ASP.NET按钮的OnClientClick里面指定调用toggleDisplay(yourGridElement, false)来隐藏Grid对应的table(或者放个<div id="xxxx">来包裹Grid,然后隐藏那个div,这样可以省去引用Grid的动态ClientID的代码),这个客户端隐藏动作做完之后,按钮的请求会会发到服务器,C#负责的Button.Click逻辑就开始执行了。
后面这个“完毕再执行js显示表格”属于无效需求,因为当查询完毕之后,浏览器会重新载入包含新结果的页面,整个文档树是全新的,上次JS设定的那些东西都已经是过眼云烟了,只要你没有在服务器端事件里面去隐藏Grid,那么页面刷新后就自动显示出来了,无需使用javascript“恢复可见”的动作。

在你的思维模型里缺失的关键一点,就是浏览器本身也算是“无状态”的,前后2次加载的HTML文档(ASP.NET输出的页面)基本上是没有什么联系的,不要在后一页考虑前一页你是怎么搞的,你就当每页都是“新的”。
夫习拳艺者,对已者十之七八,对人者,仅十之二三耳。拳艺之道,深无止境。得其浅者,一人敌,得其深者,何尝不万人敌耶!
我的Google Picasa相册
我的新BLOG

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录