Click here to Skip to main content
13,252,362 members (59,708 online)
Rate this:
Please Sign up or sign in to vote.
I have a imagebutton in a grid and when i click on it i want the label next to it to get updated. The problem is right now when i do this entire page gets reloaded which is annoying. I want to make it like facebook where when you like a comment the entire page does not reload only a small fraction is reloaded.

<asp:ImageButton ID="lnklike" runat="server" ImageUrl="~/Images/thumbsup.png" height="20px" Width="20px" CommandName="like" CommandArgument='<%# Eval("ScrapId")%>'/> &nbsp;
<asp:UpdatePanel ID="UpdatePanel1" runat="Server">
        <asp:AsyncPostBackTrigger controlid="lnklike" eventname="click"  />
    <ContentTemplate>  <asp:Label ID="Label1" runat="server" Text='<%#"ScrapId")) %>' />

protected void GridViewRowCommand(Object sender, GridViewCommandEventArgs e)
        var scrapId = Int32.Parse(e.CommandArgument.ToString());
        GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);
        int index = gvr.RowIndex;
        switch (e.CommandName)
            case "like":
                //GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
                //int index = gvr.RowIndex;
                string chklike = "select likestatus from tbl_like where fromid='" + Session["UserId"] + "' and scrapid='" + scrapId + "'";
                int a = dbo.GetLikesMethod(chklike);
                string chkthumbsdown = "select thumbsdownstatus from tbl_like where fromid='" + Session["UserId"] + "' and scrapid='" + scrapId + "'";
                int b = dbo.GetLikesMethod(chkthumbsdown);
                if (a == 0 && b == 0)
                    string sendlike = "insert into tbl_like (ScrapId,FromId,LikeStatus) values('" + scrapId + "','" + Session["UserId"] + "',1)";
                   int likes= abc(scrapId);
                    Label lnklike = (Label)GridViewUserScraps.Rows[index].FindControl("Label1");
                        lnklike.Text= likes.ToString();
                else if (a != 0)
                    Response.Write("already liked");
                else if (b != 0)
                    Response.Write("you can not like something you already downvoted!");

public void GetUserScraps(int Id)
       string getUserScraps = "SELECT u.Id as UserId,u.firstname,u.ImageName,s.FromId,s.ToId,s.Message,s.SendDate,s.ID as ScrapId FROM [tbl_user] as u, Scrap as s WHERE u.Id=s.FromId AND s.ToId='" + Request.QueryString["Id"].ToString() + "'";
       //string getlikes = "select COUNT(*) from tbl_like inner join Scrap on tbl_like.scrapid=Scrap.Id where tbl_like.likestatus=1 and tbl_like.scrapid='"+<%#DataBinder.Eval(Container.DataItem,"ScrapId")%>+"'";
       //  <%#DataBinder.Eval(Container.DataItem,"ScrapId")%>

       dt = dbClass.ConnectDataBaseReturnDT(getUserScraps);
       if (dt.Rows.Count > 0)
           GridViewUserScraps.DataSource = dt;
Posted 4-Apr-13 4:00am
Updated 4-Apr-13 4:17am
Joezer BH39.1K

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Put the label in UpdatePanel and update the panel whenever you need.
Try this:
<asp:updatepanel id="UpdatePanel1" runat="Server" xmlns:asp="#unknown">
          <asp:label id="Label1" runat="server" text="<%#"ScrapId")) %>" />

Label lnklike = (Label)GridViewUserScraps.Rows[index].FindControl("Label1");
lnklike.Text= likes.ToString();
UpdatePanel UpdatePanel1= (UpdatePanel)GridViewUserScraps.Rows[index].FindControl("UpdatePanel1");


This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web03 | 2.8.171114.1 | Last Updated 5 Apr 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100