none
JavaScript 函数内进行数据绑定 RRS feed

  • 问题

  •                

         <script type="text/javascript">
        function CallServers(type,index) 
        {
        }
        </script>

                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderWidth="0px"
                        ShowHeader="False" GridLines="None" OnRowDataBound="GridView1_RowDataBound">
                         <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                            <asp:Image ID="delect" runat="server" Style="border: 0px; height: 16px; width: 16px;
                                                cursor: hand;" ImageUrl="../usermanage/img/hr.gif" onclick="CallServers('delect',<%#Eval('id')%>)" />

                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>

    问题:CallServers中进行数据绑定怎么不行啊?我改写成onclick="CallServers('delect','<%#Eval('id')%>')"
    onclick="CallServers('delect','<%#Eval(”id“)%>')" 也不行,
    到底js函数里面能不能进行数据绑定啊...还请各位大侠指点....

    2010年5月17日 7:18

答案

  • 你好,

    服务器端的onclick事件和客户端的onclick事件是不一样的。

    你那样写到底是客户端事件还是服务器端事件?

    如果你要用脚本,那这个地方只能用普通的html控件。


    Microsoft Online Community Support
    2010年5月19日 2:04

全部回复

  • 这里没必要用服务器控件,改成html控件吧

    <img  Style="border: 0px; height: 16px; width: 16px;
                                                cursor: hand;" ImageUrl="../usermanage/img/hr.gif" onclick='CallServers(delect,<%#Eval("id")%>)' />

    2010年5月17日 7:46
  • js方法内进行数据绑定怎么不行啊?请大侠指点
    2010年5月17日 8:11
  • 这样写

    <a href="" onclick="这里写JS函数">  <asp:Image ID="Image1" runat="server" Height="33px" Width="103px" />  </a>

    参照

     <script language=javascript>
         function test(aa) {
           alert(aa);
           return false;
         }
      </script>
    
    
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
      <Columns>
        <asp:TemplateField>
          <ItemTemplate>
           <%#DataBinder.Eval(Container.DataItem,"username") %>
          </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="tuxiang">
          <ItemTemplate>
          
          <a href="" onclick=" test(<%#DataBinder.Eval(Container.DataItem,"id") %>)")>  <asp:Image ID="Image1" runat="server" Height="33px" Width="103px" /> </a>
          
          </ItemTemplate>
        </asp:TemplateField>
      </Columns>
      </asp:GridView>
    

     

     


    努力+方法=成功
    2010年5月17日 9:58
  • 谢谢大侠指点,那种方法是可以。但不知道为什么把onclick=" test(<%#DataBinder.Eval(Container.DataItem,"id") %>)")放在Image 标签里面就出现错误??放在html标签里面可以放在服务器标签里面就出现错误??
    2010年5月18日 0:37
  • 你好,你需要把单引号放在外面,双引号放在里面,因为,Eval方法只支持双引号。onclick='CallServers(delect,<%# Eval("id") %>)'
    邹俊才
    2010年5月18日 1:49
    版主
  • 我试了,只要是服务器控件都不能在js事件中进行数据绑定...


    具体我也不知道为什么....希望那位大侠指点迷津....
    2010年5月18日 9:22
  • 你好,

    服务器端的onclick事件和客户端的onclick事件是不一样的。

    你那样写到底是客户端事件还是服务器端事件?

    如果你要用脚本,那这个地方只能用普通的html控件。


    Microsoft Online Community Support
    2010年5月19日 2:04