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&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
Post a Comment