Anda pasti sering melihat suatu paging (penomoran
halaman) pada website, atau program pada desktop. Setiap anda klik nomor pada
paging maka akan mengarah ke halaman berikutnya. Namun yang menjadi perhatian
Agung Panduan adalah penomoran halaman yang menampilkan data yang dibatasi oleh
jumlah tertentu dan baris awal dan akhir yang di tampilkan pada page. Misalkan
jika jumlah yang dinginkan adalah 10 baris dan hanya page ke-2 yang ditampilkan
maka baris yang ditampilkan dari 11 hingga 20.
Apabila anda berharap dapat mengambil data tersebut
melalui SQL Server maka anda harus mengambil data berdasarkan RowStart (baris
pertama) = 11, dan RowEnd (baris akhir) karena CurrentPage adalah 2 dengan
RecordPerPage = 10.
Yang jadi masalah adalah value yang diketahui hanya CurrentPage=2
dan RecordPerPage=10.
Maka untuk mendapatkan RowStart dan RowEnd anda dapat
menggunakan rumus di bawah ini,
RowEnd = CurrentPage * RecordPerPage
RowStart = RowEnd - (RecordPerPage - 1)
Jika RowStart dan RowEnd adalah parameter yang akan dikirim
ke SQL Server melalui Ajax di Visual Studio C# atau program lainya maka query
yang harus dibuat adalah seperti:
JQuery dan Ajax
<script type="text/javascript">
$('#btnDownload').click(function () {
var rowstart = null;
var rowend = null;
rowend = $("#txtCurrentPage").val() * $("#recordPerPage").val();
rowstart = rowend - ($("#recordPerPage").val() - 1);
$.ajax({
type: "POST",
url: "@Html.Toyota().Page.GetActionUrl("Download")",
data: {
rowEnd: rowend,
rowStart: rowstart
},
success: function (data) {
//Perintah notification
Success ataulainya
},
error: function (returnResult) {
//Perintah notification Error
ataulainya
}
});
});
</script>
Repository
#region Download
{
dynamic args = new
{
RowStart = rowStart,
RowEnd = rowEnd
};
IList<Supplier>
Result = Db.Fetch<Supplier>("Supplier/Supplier_Download", args);
return Result;
}
#endregion
SQl Server
Declare
@RowStart
int= 1,
@RowEnd int = 3
select * from (
SELECT ROW_NUMBER() OVER (ORDER BY nota asc) AS RowNo, *
FROM (select distinct Nota, Supplier_Code FROM Supplier
WHERE 1=1
)a
) c
Where 1=1 And [RowNo] between CAST(@RowStart as varchar) and CAST(@RowEnd as varchar)
Share This :
0 Comments