Ağustos 1020

RadGrid Sayfalama Sorunu

Yakın zamanda bir projemde karşılaştığım bir sorundan size bahsetmek istiyorum.

Telerik kütüphenesinde gelen RadGrid sayfalama işlemi yapamıyordum. DataBind() işlemi sonucunda ilk sayfa sorunsuz şekilde geliyordu. Ancak diğer sayfalara geçmek istediğimde sadece beyaz bir ekran geliyordu.

Sorunu ViewState ve OnNeedDataSource kullanarak çözdüm. Her sayfa geçisinde veriyi yeniden Bind ediyor.

Çözüm örneği aşağıdaki gibidir:

ASPX:

 <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" PageSize="5"
ShowGroupPanel="true" OnNeedDataSource="RadGrid1_NeedDataSource"> <MasterTableView CommandItemDisplay="Top"> </MasterTableView> <ClientSettings AllowDragToGroup="true" AllowColumnsReorder="true" > </ClientSettings> </telerik:RadGrid> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Filter"/>

CS:

protected void RadGrid1_NeedDataSource(object source, 
GridNeedDataSourceEventArgs e) { if (ViewState["GridData"] != null) { RadGrid1.DataSource = ViewState["GridData"]; } }
protected void Button1_Click(object sender, EventArgs e) { string connStr = "Data Source=MyData; Initial Catalog=NorthWind;
User ID=***; Password=*****"
; SqlConnection conn = new SqlConnection(connStr); SqlCommand cmd = new SqlCommand(); conn.Open(); SqlDataAdapter adp =
new SqlDataAdapter("select * from Products", conn); DataTable dt = new DataTable(); adp.Fill(dt); ViewState["GridData"] = dt; if (ViewState["GridData"] != null) { RadGrid1.DataSource = ViewState["GridData"]; } RadGrid1.DataBind();
conn.Close(); }


Tags: , , | Categories: Telerik | ASP.NET | C# | .NET