ASP.net простой дизайн вопрос - PullRequest
3 голосов
/ 26 апреля 2011

У меня есть это в повторителе:

<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>

Это повторяется (очевидно!). Из-за настроек моего проекта я не стал генерировать уникальные идентификаторы и управлял всем этим сам, причина этого в том, что он значительно упрощает вызов ссылок на элементы DOM во внешних файлах JS.

Идентификаторы являются дубликатами, все они CommentVoteDown и CommentVoteUp. То, что я хочу сделать, это заставить их читать как:

CommentVoteUp124
CommentVoteDown124

Где число после представляет идентификатор комментария, с которым он связан.

Я пытаюсь сделать:

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

и

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

Но они просто добавляют вторые ключи к элементу HTML. Как я могу назвать их, чтобы я мог ссылаться на них в Jquery?

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Разве вы не можете сделать что-то вроде

<asp:hyperlink runat="server" CssClass="s dislike-button" 
                ID='<%# "CommentVoteDown" + Eval("ID") %>' />    
2 голосов
/ 26 апреля 2011

Разве это не сработает?

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

<% 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, вы можете найти идентификатор из области голосования до/ вниз <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");
});
1 голос
/ 26 апреля 2011

Можете ли вы попытаться добавить его в cssclass на элементе?Это может сделать это намного проще.

CommentVoteUp.Attributes ["class"] = "[добавьте ваше имя класса здесь]";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...