У меня есть ярлык внутри ListView ItemTemlate, и я хочу, чтобы он обновлялся щелчком по ссылке, которая также находится внутри ItemTemlate.Ярлык Текст внутри UpdatePanel не обновляется
Страница Код:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="SongID" DataSourceID="AlbumSongsDataSource" OnItemCommand="ListView1_ItemCommand" >
<EmptyDataTemplate>
<span>No data was returned.</span>
</EmptyDataTemplate>
<ItemTemplate>
<div href='<%# Eval("getSongPath") %>' style="width: 400px;" class="item">
<div>
<div class="fr duration">02:06</div>
<div class="btn play"></div>
<div class="title"><b><asp:Label ID="ArtistLabel" runat="server" Text='<%# Eval("Artist") %>' /></b> -<asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' /></div>
</div>
<div class="player inactive"></div>
<asp:UpdatePanel ID="LikesUpdate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="True" >
<ContentTemplate>
<div class="likes" runat="server"> <asp:Label ID="LikesLabel" runat="server" Text='<%#Eval("getLikes") %>'/> <asp:LinkButton ID="LikeButton" runat="server" Text="Like" CommandName="Like" CommandArgument='<%# Eval("SongID") %>' ></asp:LinkButton></div>
</div>
</ItemTemplate>
</asp:ListView>
код позади:
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
int s = int.Parse(e.CommandArgument.ToString());
((LinkButton)e.Item.FindControl("LikeButton")).Text = "OK!";
string UserId = User.Identity.GetUserId();
MusicStoreEntities1 m = new MusicStoreEntities1();
if (m.Likes.Where(x => (x.UserID == UserId) && (x.SongID == s)).Count() == 0)
{
Likes L = new Likes();
L.SongID = s;
L.UserID = UserId;
L.PlaylistID = null;
m.Likes.Add(L);
m.SaveChanges();
}
else
{
Likes L = m.Likes.Where(x => (x.UserID == UserId) && (x.SongID == s)).FirstOrDefault();
m.Likes.Remove(L);
m.SaveChanges();
}
((Label)e.Item.FindControl("LikesLabel")).Text = m.Likes.Where(x => (x.SongID == s)).Count().ToString();//Manually set likes
}
Это прекрасно работает. Спасибо за все. Ваши советы были очень полезными.
Привет. Похоже, у вас есть не-хорошо сформированная разметка ... есть закрытый тег div внутри шаблона contenttemplate upatepanel ... – deostroll
Да, я исправил его, но он ничего не меняет. В любом случае, спасибо – romandemidov
Пожалуйста, разместите разметку, которая будет отформатирована в следующий раз. – deostroll