自从学了jquery 之后就好纠结啊,怎么看服务器控件怎么不顺眼,老想着用jquery调用后台来生成一个无刷新的页面。比方说本来用一个ImageButton的后台单击事件就轻松解决的问题,我老想着用<a href=""><img src=""></a>这样的html标记来调用web服务, 理由就是:ImageButton会使页面产生回发,而jquery不会产生回发,而且可以利用jquery语言调动html标记生成很多的页面效果,比如弹出div层等,这些都是在服务器端很难做到的。于是有的时候很疯狂地想:干脆所有数,据绑定都不用gridview,listview之类的绑定控件,都用jquery 调用web服务动态生成吧!!省得麻烦。但是转念又一想,服务端page_load事件里面从此再不用写一个代码了。。cs页面一片空白。什么都没有。。怎么说也说不通啊。怎么可以服务器端一行代码都没有?于是我又想到两都结合的办法,比如,  我先在页面加载的时候在服务器端进行数据绑定。绑定到listview控件上,然后在操作页面的时候,用jquery, 比如下面的代码:ListView绑定:<span style="text-decoration:line-through"><%#Eval("BookPrice","{0:c2}") %></span>                       <span style="color:Red;font-weight:bold"><%#Eval("ListPrice","{0:c2}") %></span>
<!--在这儿我想向collect传递一个绑定值<%#Eval("bookId")%> -->
<a href="javascript:collect()" title="收藏此商品"><img src="Images/Small_pic/gif-0924.gif" style=""/></a>于是我就在collect()里瞎填了一个<%#Eval("bookId")%> ,结果运行的时候出错,格式不对。但是必须要用到bookId 这个参数啊,怎么传,是不是传不了,用了onclick也不行,格式又不对。所以搞得我很烦。又不想用ImageButton 控件。于是便想到,绑定还是用jquery调用web服务吧,这样问题就容易得多了,想来想去,这也用jquery吧,那也用jquery吧.. 满脑子都是jquery,对服务端控件的回发心存畏惧,又不想为了这一个小小的imageButton用scriptManager.. 实在是很纠结啊到底该怎么办,collec() 该如何传递绑定值...两者是否能互相结合。。如果collect()能够传递绑定值,那么bookId的值会暴露给用户,这样有没有危险啊??据说数据库数据是不能轻易暴露给用户的。。现在的问题是,如果两者不能相结合,那么我打算绑定数据都用jquery 。。但是会不会有什么问题啊。。能不能这么做。。在实际工作中你们是如何运用jquery和服务端代码的?什么场合用jquery, 什么场合用cs....怎样的比例才是最好?求指教啊,本人.net都是自学的。还没有实际的工作经验,对编程的想法肯定会有一些偏差,请求各位前辈给予指教,解答我的困惑...

解决方案 »

  1.   

    看的好乱啊! JQuery不是一种语言,它只是Javascript的一个框架,起到的作用只是简化了代码量,使浏览器端编程更简单快捷。 再者服务器端的语言不是用来在客户端弹出窗口的,而是处理业务上的逻辑比如用户登录的验证
      

  2.   

    不好意思。。表达的不清楚我想实现一个类似淘宝收藏的功能。点击收藏图片,弹出一个框框,  上面写着“已成功收藏”,这个功能用ImageButton click 事件向后台添加收藏很容易实现,但我不想产生回发,所以用<a href="" ><img src=""></a>,想用 a 的 click 事件通过jquery 调用web 服务实现后台向数据库添加收藏..  请问这两种形式,一个用服务端代码,一个用jquery代码,您会选择哪一种?
      

  3.   

    我认为还是瘦客户端比较好
    必要的 js 功能代码通过 ajax 动态的提供给浏览器,基本可杜绝代码泄露
      

  4.   

     我看到当当网用了大量js, 所以跟它学的, 它的html代码连绑定的数据都看不到的,只有几个引用的js 文件,我猜想它就是用jq 调用后台动态生成数据的。
      

  5.   

    也不是后台生成的,也可以再JS中动态添加HTML,绑定事件,所以只有几个JS文件,什么HTML都看不见