2011-04-26 42 views
3

我有这样的一个中继器中:ASP.net设计简单的问题

<div class="vote-wrapper"> 
    <asp:hyperlink runat="server" CssClass="s dislike-button" ID="CommentVoteDown" />       
    <div class="vote-total-bad"> 
     23 
    </div> 
    <asp:hyperlink runat="server" CssClass="s like-button" ID="CommentVoteUp" /> 
    <div class="clear"></div> 
</div> 

重复此操作(当然!)。由于我的项目设置,我没有生成唯一的ID,并且自己管理它,原因是它使得在外部JS文件中调用DOM元素的引用变得更容易。

身份证作为重复出现,全部为CommentVoteDownCommentVoteUp。我想要做的,是让它们被读为:

CommentVoteUp124 
CommentVoteDown124 

其中数字之后的数字表示与其关联的注释的ID。

我尝试做:

UV.Attributes["ID"] += ThisComment.ID; 

UV.Attributes.Add("ID", "CommentVoteUp" + ThisComment.ID); 

但这些只是增加第二个键的HTML元素。我如何命名它们以便我可以在Jquery中引用它们?

+0

是什么'UV'在这种情况下? – MikeM 2011-04-26 00:42:07

+0

做这些按钮做任何形式的回发? – hunter 2011-04-26 00:42:48

+0

是的,除非你回来发布,使用控件而不是常规的html锚不会给你任何东西。可能让它运行得慢一点,因为每个对象都有一个“新”对象。 – R0MANARMY 2011-04-26 02:37:34

回答

2

你就不能像

<asp:hyperlink runat="server" CssClass="s dislike-button" 
       ID='<%# "CommentVoteDown" + Eval("ID") %>' />  
2

这不工作?

UV.ID += ThisComment.ID; 

除非你做回发,你不必使用asp.net服务器控件和可能与清洁,简单的HTML更好:

<% Comment comment = Container.DataItem as Comment %> 
<div class="vote-wrapper"> 
    <a class="s dislike-button" ID="CommentVoteDown<%=comment.ID %>" />       
    <div class="vote-total-bad"> 
     23 
    </div> 
    <a class="s like-button" ID="CommentVoteUp<%=comment.ID %>" />       
    <div class="clear"></div> 
</div> 
的只是使用

类和查找包装与jQuery的包装容器的ID

<% Comment comment = Container.DataItem as Comment %> 
<div id="CommentVoteUp<%=comment.ID %>" class="vote-wrapper"> 
    <a class="s dislike-button" />       
    <div class="vote-total-bad"> 
     23 
    </div> 
    <a class="s like-button" />       
    <div class="clear"></div> 
</div> 

然后使用jQuery,你可以找到从第

$(".like-button").click(function(){ 
    var id = $(this).closest(".vote-wrapper").attr("id"); 
}); 

$(".dislike-button").click(function(){ 
    var id = $(this).closest(".vote-wrapper").attr("id"); 
}); 
1

你可以尝试将其添加到在元素上的CssClass:使用这种投票向上/向下<a>标签è范围是什么?这可能会使它更容易。

CommentVoteUp.Attributes [“class”] =“[在此处添加您的班级名称]”;