一句话轻松搞定asp.net分页
rows是客户端传过来的行数,page是页码,传参就需要就两个参数就行,sql语句中_row和_page自己声明的局部变量,值还是相应的row和page,为了运算而已。
用数据库类获得它的DataTable,转换为json格式通过一般处理程序传到客户端,客户端显示就ok了。这里我使用的是easyuidatagrid进行接收和传参。这是大体的思路。
stringsql="selecttop"+rows+"*fromTestDatawheretestIDnotin(selecttop"+(_rows*(_page-1))+"testIDfromTestDataorderbytestIDdesc)orderbytestIDdesc";
//DataTable转换成json,这里带了“total”,传给客户端的数据总数,不传这个,客户端不会显示总数据是多少条多少条的。 publicstaticstringCreateJsonParameters(DataTabledt,booldisplayCount,inttotalcount) { StringBuilderJsonString=newStringBuilder(); //ExceptionHandling if(dt!=null) { JsonString.Append("{"); if(displayCount) { JsonString.Append("\"total\":"); JsonString.Append(totalcount); JsonString.Append(","); } JsonString.Append("\"rows\":["); for(inti=0;i<dt.Rows.Count;i++) { JsonString.Append("{"); for(intj=0;j<dt.Columns.Count;j++) { if(j<dt.Columns.Count-1) { //if(dt.Rows[i][j]==DBNull.Value)continue; if(dt.Columns[j].DataType==typeof(bool)) { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+ dt.Rows[i][j].ToString().ToLower()+","); } elseif(dt.Columns[j].DataType==typeof(string)) { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+"\""+ dt.Rows[i][j].ToString().Replace("\"","\\\"")+"\","); } else { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+"\""+dt.Rows[i][j]+"\","); } } elseif(j==dt.Columns.Count-1) { //if(dt.Rows[i][j]==DBNull.Value)continue; if(dt.Columns[j].DataType==typeof(bool)) { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+ dt.Rows[i][j].ToString()); } elseif(dt.Columns[j].DataType==typeof(string)) { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+"\""+ dt.Rows[i][j].ToString().Replace("\"","\\\"")+"\""); } else { JsonString.Append("\""+dt.Columns[j].ColumnName+"\":"+"\""+dt.Rows[i][j]+"\""); } } } /*endOfString*/ if(i==dt.Rows.Count-1) { JsonString.Append("}"); } else { JsonString.Append("},"); } } JsonString.Append("]"); JsonString.Append("}"); returnJsonString.ToString().Replace("\n",""); } else { returnnull; } }
以上就是本文的全部内容,希望对大家的学习有所帮助。