2011-12-29 59 views
-1

我有一个jQuery代码,我必须在我的中继器运行的所有项目的代码运行jQuery代码ItemCommand

在我的中继器,我有一个按钮和标签 我要的是点击一个按钮时,中继器将标签参数发送给jquery函数并运行它。我的jquery代码如下。它现在给出错误。因为imgBtnCopy位于转发器内部,所以它表示没有名称为imgBtnCopy的按钮。所以,我怎么能在itemcommand运行中继的这段代码

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#' + '<%= imgBtnCopy.ClientID %>').zclip({ 
      path: 'ZeroClipboard.swf', 
      copy: function() { 
       return $('#' + '<%= lblFile.ClientID %>').val(); 
      }, 
      afterCopy: function() { 

      } 
     }); 

    }); 

</script> 

回答

1

ItemCommand是中继对象的服务器端事件。由于JQuery是客户端代码,因此这里有一些不匹配。

此外,如果您查看呈现的HTML源代码,您将注意到错误消息是正确的。没有对象的ID为imgBtnCopy。有与对象imgBtnCopy作为部分的id。 ASP.NET框架将为您的<ItemTemplate>中的每个控件分配一个唯一的ID。否则,您将最终得到具有相同ID的多个控件。不是一件好事。

这就是说,你应该改变你的方法来考虑上述信息。

要选择包含其ID的imgBtnCopy部分所有控件,使用jQuery选择这样的:

[id*=imgBtnCopy] 

您选择具有包含字符串的ID的所有元素这样imgBtnCopy。 * =是包含的JQuery运算符。然后,您会将您的JQuery连接到每个按钮的单击事件。