簡體   English   中英

中繼器項目在ItemCommand之后隱藏

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM