[英]Repeater Item hides after ItemCommand
嗨,我不知道標題是什么,但我的問題是我在轉發器中顯示帖子,並且當我按“喜歡”按鈕時,里面有一個“喜歡”按鈕,該帖子被隱藏了。 以下是itemCommand事件。
protected void rptrPosts_ItemCommand(object source, RepeaterCommandEventArgs e)
{
RepeaterItem item = e.Item;
TextBox txtComment = item.FindControl("txtComment") as TextBox;
Label lblID = (Label)item.FindControl("lblID");
LinkButton btnLike = (LinkButton)item.FindControl("btnLike");
int userid = Convert.ToInt32(Session["USERID"]);
int postid = Convert.ToInt32(lblID.Text);
if (e.CommandName == "like")
{
InstagramEntity insta = new InstagramEntity();
int count = (from like in insta.likes where like.like_from == userid & like.like_post== postid select like).Count();
if (count == 0)
{
like lk = new like();
lk.like_from = userid;
lk.like_post = postid;
insta.likes.Add(lk);
insta.SaveChanges();
this.DataBind();
}
}
我也嘗試了rptrposts.DataBind()。 PS:單擊“贊”按鈕后,需要刷新面板。 頁面加載:
if (!IsPostBack)
{
loadpage();
}
LoadPage()
如果刪除(!IsPostBack)條件,該項目將更新,但在更新后不會隱藏,但會顯示重復的項目。
public void loadpage()
{
InstagramEntity insta = new InstagramEntity();
rptrPosts.DataSource = (from post in insta.posts
join user in insta.users on post.post_by equals user.user_id
orderby post.post_time descending
select new { user.user_name, post.post_time, post.post_image, post.post_caption, post.post_id, post.post_by }).ToList();
rptrPosts.DataBind();
}
標記:
<asp:Repeater ID="rptrPosts" OnItemCreated="rptrPosts_ItemCreated" OnItemCommand="rptrPosts_ItemCommand" runat="server">
<ItemTemplate>
<div>
<div class="panel panel-default post">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div class="panel-heading">
<asp:Label ID="lblID" Visible="false" runat="server" Text='<%# Eval("post_id") %>'></asp:Label>
<img src="Images/homepageimage.jpg" class="img-circle avator" /><a style="margin-left:10px;" href="account.aspx?id=2" ><%# Eval("user_name") %></a><label class="pull-right">Posted On <%# Eval("post_time") %></label>
<asp:HiddenField ID="imagePath" Value='<%# Eval("post_image") %>' runat="server" />
</div>
<div class="panel-body">
<img src='Images/<%# Eval("post_image") %>' class="PostImage img-responsive" />
<div class="well well-sm">
<asp:LinkButton ID="btnLike" CssClass='btn btn-link' CommandName="like" runat="server"><span style="color:red;font-size:x-large" class='<%# getLikeClass(Eval("post_id")) %>'></span></asp:LinkButton><%# getPostlikes(Eval("post_id")) %><br />
<%# Eval("post_caption") %><br />
<ul class="list-group">
<li class="list-group-item"><b>Comments:</b></li>
<asp:LinqDataSource ID="dsComments" runat="server" EnableInsert="true" ContextTypeName="instagram.InstagramEntity" EntityTypeName="" TableName="view_comments" Where="comment_post == @comment_post" OrderBy="comment_time">
<WhereParameters>
<asp:ControlParameter ControlID="lblID" PropertyName="Text" Name="comment_post" Type="Int32"></asp:ControlParameter>
</WhereParameters>
</asp:LinqDataSource>
<asp:Repeater ID="rptrComments" runat="server">
<ItemTemplate>
<li class="list-group-item"><a href="#"><%# Eval("user_name") %> </a><%# Eval("comment_text") %> </li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
</div>
<div class="panel-footer"><asp:LinkButton ID="btnDelete" CssClass="pull-right" Visible='<%# DelVisiblily(Eval("post_by")) %>' CommandName="delete" ToolTip="Delete this Post" runat="server"><span class="glyphicon glyphicon-remove label-danger"></span>Delete</asp:LinkButton> </div>
</div>
</ContentTemplate> </asp:UpdatePanel>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
我是asp.net的新手,這是我的學期項目。 一個幫助將是很好。
嘗試loadpage();
代替this.DataBind();
在rptrPosts_ItemCommand(..);
if (e.CommandName == "like")
{
//code here
if (count == 0)
{
//code here
loadpage();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.