Untuk melanjutkan penyortiran setelah membalik halaman, capai efek ini:
Misalnya, ada total 15 catatan, dan 10 catatan ditampilkan pada setiap halaman
. Saat mengurutkan: 10 catatan pertama diurutkan pada halaman pertama, dan lima catatan berikutnya diurutkan secara terpisah saat halaman kedua dibalik.
Perhatikan hal-hal berikut:
1. Jika datanya banyak, sebaiknya jangan memasukkan kumpulan data ke dalam cache (kondisi tampilan), yang akan mempengaruhi kinerja
2. ViewState menyimpan e.expression terakhir dan apakah e.expression dalam urutan ascending atau descending.
Contohnya sebagai berikut:
1. Event pengurutan yang ada ditulis seperti ini. Ini digunakan ketika mengklik judul pengurutan di atas:
private void grdProjTrace_SortCommand(sumber objek, DataGridSortCommandEventArgs e)
{
this.grdProjTrace.CurrentPageIndex = 0;
DataView dv = dapatkan kode data;
string strSort = "";
string strOrder = ""; // Metode pengurutan. 0, urutan menurun, 1 urutan menaik if(ViewState["SortExpresstion"] != null)
{
strSort = ViewState["SortExpresstion"].ToString();
strSort = strSort.Substring(0,strSort.Panjang -1);
strOrder = ViewState["SortExpresstion"].ToString();
strOrder = strOrder.Substring(strOrder.Panjang -1);
}
if(e.SortExpression == "Nama Pelanggan")
{
if(strSort != "Nama Pelanggan")
{
this.ViewState["SortExpresstion"] = ustomerName0";
dv.Sort = "Nama Pelanggan DESC";
}
kalau tidak
{
jika(strPesanan == "0")
{
this.ViewState["SortExpresstion"] = "NamaPelanggan1";
dv.Sort = "Nama Pelanggan ASC";
}
kalau tidak
{
this.ViewState["SortExpresstion"] = "Nama Pelanggan0";
dv.Sort = "Nama Pelanggan DESC";
}
}
}
if(e.SortExpression == "Nama Lengkap")
{
if(strSort != "Nama Lengkap")
{
this.ViewState["SortExpresstion"] = "nama lengkap0";
dv.Sort = "Nama Lengkap DESC";
}
kalau tidak
{
jika(strPesanan == "0")
{
this.ViewState["SortExpresstion"] = "nama lengkap1";
dv.Sort = "Nama Lengkap ASC";
}
kalau tidak
{
this.ViewState["SortExpresstion"] = "nama lengkap0";
dv.Sort = "Nama Lengkap DESC";
}
}
}
this.grdProjTrace.DataSource = dv;
this.grdProjTrace.DataBind();
}
2. Metode berikut ini saya tulis sendiri dan dipanggil pada acara pembalikan halaman.
kekosongan pribadi ChangePageDataBind()
{
DataView dv = dapatkan kode data;
string strSort = "";
string strOrder = ""; // Metode pengurutan. 0, urutan menurun, 1 urutan menaik if(ViewState["SortExpresstion"] != null)
{
strSort = ViewState["SortExpresstion"].ToString();
strSort = strSort.Substring(0,strSort.Panjang -1);
strOrder = ViewState["SortExpresstion"].ToString();
strOrder = strOrder.Substring(strOrder.Panjang -1);
}
if(ini.ViewState["SortExpresstion"] != null)
{
if(strSort == "Nama Pelanggan")
{
jika(strPesanan == "1")
{
this.ViewState["SortExpresstion"] = "NamaPelanggan1";
dv.Sort = "Nama Pelanggan ASC";
}
kalau tidak
{
this.ViewState["SortExpresstion"] = "Nama Pelanggan0";
dv.Sort = "Nama Pelanggan DESC";
}
}
}
if(ini.ViewState["SortExpresstion"] != null)
{
if(strSort == "Nama Lengkap")
{
jika(strPesanan == "1")
{
this.ViewState["SortExpresstion"] = "nama lengkap1";
dv.Sort = "Nama Lengkap ASC";
}
kalau tidak
{
this.ViewState["SortExpresstion"] = "nama lengkap0";
dv.Sort = "Nama Lengkap DESC";
}
}
}
this.grdProjTrace.DataSource = dv;
this.grdProjTrace.DataBind();
}
Kedua cara di atas bisa langsung dipanggil asalkan nama field yang akan diurutkan diubah.
1. Caranya sangat sederhana dan praktis, jadi saya tidak akan membahasnya di sini.
2. Metode yang digunakan seperti ini:
private void grdProjTrace_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
mencoba
{
mencoba
{
this.grdProjTrace.CurrentPageIndex = e.NewPageIndex;
}
menangkap
{
this.grdProjTrace.CurrentPageIndex = 0;
}
ini.ChangePageDataBind();
}
catch(Sistem.Pengecualian errWS)
{
//abnormal}
}