一句话轻松搞定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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助。