Gridview de Dropdowlist kullanarak sayfalama
Gridview kullanmak veritabanımızdaki verilerin kolayca görüntülenmesi, üzerinde değişiklik yapmamız ve getirdiği bir çok kolaylık bakımından bizim için bulunmaz bir nimet. Gridview kullanırken bazı ek özelliklerde kullanabiliriz. Bu gün kendi projelerimde kullandığım dropdownlist kullanarak sayfalama işleminden bahsedeceğim. orjinaline buradan ulaşabilirsiniz.
�
<PagerTemplate>
<table border=”0″ cellpadding=”0″ cellspacing=”0″ style=”width: 100%; border-bottom-width: 2px;border-bottom-color: #ffcc99;”>
<tr>
<td style=”width: 300px”>
<asp:Label ID=”lblPager” runat=”server” CssClass=”boldText”></asp:Label>
<asp:DropDownList ToolTip=”Sayfa seç” ID=”ddlPageSelector” runat=”server” AutoPostBack=”true” OnSelectedIndexChanged=”ddlPageSelector_SelectedIndexChanged”>
</asp:DropDownList></td>
<td style=”text-align: right”>
<asp:Button ID=”btnFirst” runat=”server” CommandArgument=”First” CommandName=”Page”
Text=”İlk Sayfa” />
<asp:Button ID=”btnPrevious” runat=”server” CommandArgument=”Prev” CommandName=”Page”
Text=”Önceki” />
<asp:Button ID=”btnNext” runat=”server” CommandArgument=”Next” CommandName=”Page”
Text=”Sonraki” />
<asp:Button ID=”btnLast” runat=”server” CommandArgument=”Last” CommandName=”Page”
Text=”Son Sayfa” />
</td>
</tr>
</table>
</PagerTemplate>
Gridview in RowCreated event ine aşağıdaki kodu yazıyoruz:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.Pager) {
SetPagerButtonStates(GridView1, e.Row, this);
}
}
SetPagerStates adlı void ile dropdownlist ile page index değişimini sağlıyoruz
public static void SetPagerStates(GridView gridView, GridViewRow gvPagerRow, Page page)
{
int pageIndex = gridView.PageIndex;
int pageCount = gridView.PageCount;
Button btnFirst = (Button)gvPagerRow.FindControl(”btnFirst”);
Button btnPrevious = (Button)gvPagerRow.FindControl(”btnPrevious”);
Button btnNext = (Button)gvPagerRow.FindControl(”btnNext”);
Button btnLast = (Button)gvPagerRow.FindControl(”btnLast”);
Label lblPager = (Label)gvPagerRow.FindControl(”lblPager”);
btnFirst.Enabled = btnPrevious.Enabled = (pageIndex != 0);
btnNext.Enabled = btnLast.Enabled = (pageIndex < (pageCount - 1));
DropDownList ddlPageSelector = (DropDownList)gvPagerRow.FindControl(”ddlPageSelector”);
ddlPageSelector.Items.Clear();
for (int i = 1; i <= gridView.PageCount; i++)
{
ddlPageSelector.Items.Add(i.ToString());
}
ddlPageSelector.SelectedIndex = pageIndex;
ddlPageSelector.SelectedIndexChanged += delegate
{
gridView.PageIndex = ddlPageSelector.SelectedIndex;
//gridView.DataBind();
};
lblPager.Text = string.Format(”\t(sayfa: {0}/{1})”, pageIndex+1, pageCount);
}
Kategori: Asp.Net
hocam güzel olmuş eline sağlık
Merhaba
pager template i ekleyince hata veriyor.. Nereye eklememiz gerekiyor ?
Saygılarımla
ezbere alıyosunuz arkadaşım kodları , SetPagerButtonStates nedir nerede bu zımpırtı onları da yazarsanız faydası olacaktır…
SetPagerButtonStates yukarıda görüldüğü gibi parametre olarak ilgili olan GridView ve GridViewRow bilgisini alan bir void.