c# - how to do custom paging with paging template in asp gridview? -


so let want create paging "> 1 2 3 4 5 6 <" , decided use paging template in gridview , :

aspx file :

 <asp:gridview id="gvdept" runat="server" cellpadding="4" forecolor="black"                        gridlines="horizontal" autogeneratecolumns="false" backcolor="white"                        bordercolor="#cccccc" borderstyle="none" borderwidth="1px"                       allowsorting="true" allowpaging="true" allowcustompaging="true"                        datasourceid="ds" datakeynames="departementcode" pagesize="3" onrowcommand="gvdept_rowcommand">                          <columns>                           <asp:templatefield>                              <headertemplate>                                  <asp:checkbox runat="server" id="cbselectall" onclick="selectall(this)"></asp:checkbox>                                  <%-- <asp:checkbox runat="server" id="cball" oncheckedchanged="cball_checkedchanged" autopostback="true"></asp:checkbox>--%>                              </headertemplate>                              <itemtemplate>                                  <asp:checkbox runat="server" id="cbselectone"></asp:checkbox>                              </itemtemplate>                           </asp:templatefield>                           <asp:hyperlinkfield text="edit" datanavigateurlfields="departementcode"                                  datanavigateurlformatstring="managedepartement.aspx?flag=edit&amp;departementcode={0}" />                           <asp:templatefield showheader="false">                               <itemtemplate>                                   <asp:linkbutton id="linkbutton1" runat="server" causesvalidation="false" commandname="delete"                                        onclientclick="return confirm ('are sure?');" text="delete">                                   </asp:linkbutton>                               </itemtemplate>                               <itemstyle forecolor="red" />                           </asp:templatefield>                           <asp:boundfield datafield="departementcode" headertext="departement code" readonly="true" sortexpression="departementcode" />                           <asp:boundfield datafield="departementname" headertext="departement name" sortexpression="departementname" />                           <asp:boundfield datafield="createby" headertext="create by" sortexpression="createby" />                           <asp:boundfield datafield="createdate" headertext="create date" sortexpression="createdate" />                           <asp:boundfield datafield="updateby" headertext="update by" sortexpression="updateby" />                           <asp:boundfield datafield="lastupdate" headertext="last update" sortexpression="lastupdate" />                         </columns>                         <footerstyle backcolor="#cccc99" forecolor="black"/>                         <headerstyle backcolor="#333333" font-bold="true" forecolor="white" />                        <pagersettings mode="numeric" />                         <pagerstyle backcolor="white" forecolor="black" horizontalalign="center" cssclass="paging"/>                         <pagertemplate>                         </pagertemplate>                         <rowstyle bordercolor="white"/>                         <selectedrowstyle backcolor="#cc3333" font-bold="true" forecolor="white" />                         <sortedascendingcellstyle backcolor="#f7f7f7" />                         <sortedascendingheaderstyle backcolor="#4b4b4b" />                         <sorteddescendingcellstyle backcolor="#e5e5e5" />                         <sorteddescendingheaderstyle backcolor="#242121" />                     </asp:gridview>                     <asp:linqdatasource id="ds" runat="server" contexttypename="admin.airasiadcdatacontext"                                              entitytypename="" tablename="departements" enabledelete="true" ondeleted="ds_deleted">                     </asp:linqdatasource> 

and put code in c# :

 protected void page_load(object sender, eventargs e)         {                 airasiadcdatacontext dc = new airasiadcdatacontext();                 int dtcount = dc.departements.count();                 int pgcount = 0;                  if (dtcount % 3 > 0)                 {                     pgcount = (dtcount / 3) + 1;                 }                 else                 {                     pgcount = pgcount / 3;                 }                  button pagerbtn;                  (int = 1; <= pgcount; i++)                 {                     if(i == 1)                     {                         pagerbtn = new button();                         pagerbtn.id = "btnext";                         pagerbtn.text = ">";                         pagerbtn.commandname = "next";                          gvdept.bottompagerrow.cells[0].controls.add(pagerbtn);                     }                      pagerbtn  = new button();                     pagerbtn.id = "bt" + i;                     pagerbtn.text = i.tostring();                     pagerbtn.commandname = i.tostring();                      gvdept.bottompagerrow.cells[0].controls.add(pagerbtn);                      if (i == pgcount)                     {                         pagerbtn = new button();                         pagerbtn.id = "btlast";                         pagerbtn.text = "<";                         pagerbtn.commandname = "last";                          gvdept.bottompagerrow.cells[0].controls.add(pagerbtn);                     }                 }         }    protected void gvdept_rowcommand(object sender, gridviewcommandeventargs e)         {             airasiadcdatacontext dc = new airasiadcdatacontext();             int datacount = dc.departements.count();             int pagecount = 0;             int previdx = 0;              if (datacount % 3 > 0)             {                 pagecount = (datacount / 3) + 1;             }             else             {                 pagecount = datacount / 3;             }               if (e.commandname == "next")             {                  if (gvdept.pageindex < pagecount - 1)                  {                         previdx = gvdept.pageindex;                         gvdept.pageindex = gvdept.pageindex + 1;                          if (previdx == pagecount - 2)                         {                             button btn = (button)gvdept.bottompagerrow.cells[0].findcontrol("btnext");                             btn.visible = false;                         }                  }                }             else if (e.commandname == "prev")             {                 if (gvdept.pageindex > 0)                 {                     previdx = gvdept.pageindex;                     gvdept.pageindex = gvdept.pageindex - 1;                      if (previdx == 1)                     {                         button btn = (button)gvdept.bottompagerrow.cells[0].findcontrol("btprev");                         btn.visible = false;                     }                 }             }             else             {                 gvdept.pageindex = convert.toint32(e.commandname) - 1;             }         } 

my code working, problem is, if click 1 of paging button, after postback paging button generated before totally gone, don't wrong here? correction?

in grid view use

onpageindexchanging="gvdept_pageindexchanging" 

add code in .cs file bind data grid view on each page index change.

protected void gvdept_pageindexchanging(object sender, gridviewpageeventargs e) {     gvdept.pageindex = e.newpageindex;     // write here function bind grid datasource } 

add @ starting in page_load function data gets bind grid view each time after postback.

if (!ispostback)     {         //function bind grid data source     } 

Comments