如何将zClip链接到asp.net中的转发器控件内的锚标签

时间:2013-03-28 11:12:08

标签: jquery asp.net repeater zclip

我正在使用zClip Jquery插件将一些URL复制到剪贴板。 zClip的SAMPLE代码如下所示。

$(document).ready(function () {
    $('a#copy-description').zclip({
        path: 'zClip/ZeroClipboard.swf',
        copy: $('p#description').text()
    });
});

它通常作为普通锚标签和正常段落正常工作。但我需要将锚标记放在转发器中,我需要将相应的URL复制到剪贴板<%# Eval("URL") %>。当转发器生成时,将有n个锚点和n个要复制的URL。我尝试了一些我知道的东西,但我无法使它工作。我该如何解决这个问题?

<asp:Repeater ID="rptWebAddress" runat="server" OnItemCommand="rptWebAddress_ItemCommand">
    <ItemTemplate>
        <p>
            <asp:Table runat="server">
                <asp:TableRow ID="TableRow1" runat="server">
                    <asp:TableCell>
                        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("URL") %>' Target="_blank">Click Here</asp:HyperLink>
                    </asp:TableCell>
                    <asp:TableCell>Web link. Click it. Open in browser. Save as a bookmark.</asp:TableCell>
                </asp:TableRow>
                <asp:TableRow ID="TableRow2" runat="server">
                    <asp:TableCell> <a style="text-decoration: underline;" id="copy-description" href="#">Copy</a> 
                    </asp:TableCell>
                    <asp:TableCell>Web link as text. Copy and paste.</asp:TableCell>
                </asp:TableRow>
            </asp:Table>
        </p>
    </ItemTemplate>
</asp:Repeater>

2 个答案:

答案 0 :(得分:0)

假设您可以将类zcopy添加到Copy元素

$(function(){
    $('.zcopy').each(function(i,v){
        var el = $(v);
        el.zclip({
            path: 'zClip/ZeroClipboard.swf',
            copy: el.closest('tr').prev().find('a').attr('href')
        });
    });
})

答案 1 :(得分:0)

您不需要jQuery来执行此操作。好旧时尚的javascript会做:

<asp:TableCell>
   <a style="text-decoration: underline;" id="copy-description" href="#" onclick="CopyUrl(this, '<%# Eval("URL") %>';">Copy</a>
</asp:TableCell>

你的javascript函数将如下所示:

function CopyUrl(object, url) {
    object.zclip({
        path: 'zClip/ZeroClipboard.swf',
        copy: url
    });    
    return false;
}