ASP.NET Custom GridView
Dokumentasi hasil belajar .net selama idle di kantor :p Sudah banyak di post oleh .net developer di internet, seperti di sini
Pada .net framework 2.0 ke atas, Grid View sudah memiliki fitur Paging (membagi tampilan data menjadi beberapa halaman) dan Sorting (mengurutkan data yang ditampilkan). Tapi jika kita tidak mendefinisikan datasource sebelum kode di run (pada file .aspx), maka fitur built-in ini tidak akan bisa berjalan. Ketika kita mencoba meng-klik link paging akan muncul error seperti ini:
The GridView 'nama_grid_view' fired event PageIndexChanging which wasn't handled.
Sedangkan ketika kita mencoba untuk melakukan sort dengan meng-klik salah satu header kolom pada Grid View, maka akan muncul error seperti ini:
The GridView 'nama_grid_view' fired event Sorting which wasn't handled.
Jika itu masalah yang juga Anda alami, tambahkan lah method berikut pada embedded-code web form Anda (nama Grid View pada contoh ini adalah gvPaging):
C#
protected void gvPaging_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvPaging.PageIndex = e.NewPageIndex;
gvPaging.DataBind();
}
VB.Net
Protected Sub gvPaging_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvPaging.PageIndexChanging
gvPaging.PageIndex = e.NewPageIndex
BindCategory() 'custom procedure to bind your data to the gridview
End Sub
Untuk membuat sorting berfungsi dengan baik, tambahkan method berikut pada embedded-code web form Anda (nama Grid View pada contoh ini adalah gvSorting):
C#
protected void gvSorting_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dtSortTable = gvSorting.DataSource as DataTable;
if (dtSortTable != null)
{
DataView dvSortedView = new DataView(dtSortTable);
dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString(e.SortDirection);
gvSorting.DataSource = dvSortedView;
gvSorting.DataBind();
}
}
private string getSortDirectionString(SortDirection sortDireciton)
{
string newSortDirection = String.Empty;
if(sortDirection== SortDirection.Ascending)
{
newSortDirection = "ASC";
}
else
{
newSortDirection = "DESC";
}
return newSortDirection
}
VB.Net
Protected Sub gvSorting_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles gvSorting.Sorting
Dim datatable As DataTable = gvSorting.DataSource
If Not IsNothing(datatable) Then
Dim dataview As DataView = New DataView(datatable)
dataview.Sort = e.SortExpression + " " + Me.getSortDirectionString(e.SortDirection)
gvSorting.DataSource = dataview
gvSorting.DataBind()
End If
End Sub
Private Function getSortDirectionString(ByVal sortDireciton As SortDirection) As String
Dim newSortDirection As String = String.Empty
If sortDireciton = SortDirection.Ascending Then
newSortDirection = "ASC"
Else
newSortDirection = "DESC"
End If
Return newSortDirection
End Function
1 komentar:
Mau nambahin aja nii, untuk ASP.NET GridView khususnya Conditional Binding Expression dengan ASP.NET GridView lebih lengkapnya baca artikel di blog ini aja yaa..
http://windowshosting.blogdetik.com/2013/12/17/aspnet-hosting-conditional-binding-expression-dengan-aspnet-gridview/
Semoga bermanfaat :)
Posting Komentar