ASP.net简单设计问题

本文关键字:问题 简单 net ASP | 更新日期: 2023-09-27 17:53:07

我有一个中继器:

<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元素容易得多。

ID是重复的,都是CommentVoteDownCommentVoteUp。我想做的是让它们读起来像:

CommentVoteUp124
CommentVoteDown124

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

我试着做:

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

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

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

ASP.net简单设计问题

你就不能像

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

不行吗?

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>

只是使用类,并找到id的包装容器与jQuery

<% 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,你可以找到从投票的范围内的id/down <a>标签使用这个:

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

您可以尝试将其添加到元素的classclass上吗?这可能会使它更容易。

CommentVoteUp。Attributes["class"] = "[在这里添加你的类名]";