<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"   OnClientClick="setWell('<%#Eval('well_id')%>','<%#Eval('well_name')%>')">编辑</asp:LinkButton>
<a id="A1"  onclick="setWell('<%#Eval("well_id")%>','<%#Eval("well_name")%>')">编辑2</a>这样写的话两者都触发OnClientClick属性,但是LinkButton 不会把值传进去,a标签则会,当OnClientClick="setWell('<%#Eval('well_id')%>','<%#Eval('well_name')%>')"改成onclick="setWell('<%#Eval("well_id")%>','<%#Eval("well_name")%>')">这样时,LinkButton 则会报错错误 130 The server tag is not well formed. E:\C# Test\Test\Bb4.aspx 228
说的有些啰嗦,希望大神解答,还有就是我想实现先调用js方法再调用后台方法,如果不用这样,怎么解决?
小弟不才,希望高手解答。

解决方案 »

  1.   

    你先了解,带有runat="server"的空间不能带 <%%>这种代码块。
    既然有runat=server,你可以把数据保存到控件的可见属性上,让前端获取。
      

  2.   


    您所说的不能是语法上的不能还是是说是不好的书写习惯呢,如果是第一种的话,好像是可以的,然后我是把数据绑在Repeater 上的。
    然后我想做的就是想用onclick 和OnClientClick,先触发js方法然后再调用后台的方法,这样怎么做啊。
    谢谢
      

  3.   

    如果控件有runat="server"
    onclick会把执行的结果传给服务器
    onclientclick只会在浏览器执行
      

  4.   


    您所说的不能是语法上的不能还是是说是不好的书写习惯呢,如果是第一种的话,好像是可以的,然后我是把数据绑在Repeater 上的。
    然后我想做的就是想用onclick 和OnClientClick,先触发js方法然后再调用后台的方法,这样怎么做啊。
    谢谢谢谢,这点我知道的,我想知道的是但是加了runat="server",OnClientClick="setWell('<%#Eval("well_id")%>','<%#Eval("well_name")%>')"这样写是会报错的。我不明白这是为什么。
      

  5.   


    您所说的不能是语法上的不能还是是说是不好的书写习惯呢,如果是第一种的话,好像是可以的,然后我是把数据绑在Repeater 上的。
    然后我想做的就是想用onclick 和OnClientClick,先触发js方法然后再调用后台的方法,这样怎么做啊。
    谢谢谢谢,这点我知道的,我想知道的是但是加了runat="server",OnClientClick="setWell('<%#Eval("well_id")%>','<%#Eval("well_name")%>')"这样写是会报错的。我不明白这是为什么。
    你先区分<%%>代码块的类型
    常用的<%=变量%>是绑定对象的值,不能用在服务器控件上。
    <%#Eval%>这种是用于服务器控件动态绑定数据,需要把数据源绑定到控件上。
    单纯的<% 代码  %>是编写逻辑代码。
      

  6.   

    如果只是要完成你的需求,其实很简单。<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" >编辑</asp:LinkButton>
    $('#<%LinkButton1.ClientID%>').click(function(){
    //处理逻辑,先触发 js,如果false,则通过return false,不会触发OnClick的后台事件
         if(false)
          return false;
    })onclick的后台事件,还是老样子不需要改动。上面用的jquery
      

  7.   

    if(!false)
          return false;上面少了个感叹号。。哈哈,测试代码,表达一下意思而已