PDPerson pd = new PDPerson(); //取得当前页数,并判断
if (Request["pagesize"] == null)
Record_Per_Page = 25;
else
Record_Per_Page = Convert.ToInt32(Request["pagesize"]); //获得总记录数
nRecCount = pd.GetObjectCountByTime(timeStart, timeEnd);
StringBuilder strHtml = new StringBuilder(""); //判断是否存在数据记录
if (nRecCount > 0)
{
//确定数据记录要显示的页面数
nPageCount = nRecCount / Record_Per_Page;
if (nRecCount % Record_Per_Page > 0)
nPageCount++;
if (nPage < 1)
nPage = 1;
if (nPage > nPageCount)
nPage = nPageCount; //将页面显示到屏幕上,并作连接
for (int i = 1; i <= nPageCount; i++)
{
strHtml.Append("<a href='Dengji.aspx?page=" + i + "×tart=" + timeStart.ToString("yyyy-MM-dd") + "&timeend=" + timeEnd.ToString("yyyy-MM-dd") + " '>");
//strHtml.Append("<a href='Dengji.aspx?page=" + i + "'>");
if (i == nPage) strHtml.Append("<b>" + i + "</b>");
else strHtml.Append(i);
strHtml.Append("</a> "); } //确认当前页面的开始记录和终止记录
int nStart = Record_Per_Page * (nPage - 1);
int nEnd = nStart + Record_Per_Page - 1;
if (nEnd > nRecCount - 1)
nEnd = nRecCount - 1; strlnk = strHtml.ToString(); StringBuilder StrSql = new StringBuilder();
StringBuilder strSql = new StringBuilder();
StrSql.AppendFormat("SELECT distinct TOP {0} * FROM C_Work_Object WHERE ", Record_Per_Page.ToString());
StrSql.AppendFormat("( Obj_id NOT IN (SELECT TOP {0} Obj_id FROM C_Work_Object", (Record_Per_Page * (nPage - 1)).ToString());
if (timeStart != DateTime.MinValue || timeEnd != DateTime.MinValue)
{
StrSql.Append(" where ");
if (timeStart == DateTime.MinValue)
{
StrSql.AppendFormat(" Obj_dotime < '{0}'", timeEnd.ToString());
strSql.AppendFormat(" Obj_dotime < '{0}')", timeEnd.ToString());
}
else if (timeEnd == DateTime.MinValue)
{
StrSql.AppendFormat(" Obj_dotime > '{0}'", timeStart.ToString());
strSql.AppendFormat(" Obj_dotime > '{0}')", timeStart.ToString());
}
else
{
StrSql.AppendFormat(" Obj_dotime between '{0}' and '{1}'", timeStart.ToString(), timeEnd.ToString());
strSql.AppendFormat(" Obj_dotime between '{0}' and '{1}')", timeStart.ToString(), timeEnd.ToString());
}
}
StrSql.Append(" ORDER BY Obj_id DESC)");
StrSql.Append(" and ");
strSql.Append(" ORDER BY Obj_id DESC");
pdperson = pd.GetObjectBySql(StrSql.ToString() +strSql.ToString() );
}
}
这是我的分页代码,没有问题的,但
<%
//if (trcount == 0) return;
for (int i = nStart; i <= nEnd; i++)
{
ProcessData(Convert.ToInt32(pdperson.Rows[i]["Obj_id"]));
%>
<tr>
<td style="width:300px"><%=pdperson.Rows[i]["Obj_caseid"].ToString()%></td>
</tr>
<%
}
%>
每个页面只输出了一条记录,我想每个页面输出20条记录,怎么做啊??望大狭们指教啊???急
if (Request["pagesize"] == null)
Record_Per_Page = 25;
else
Record_Per_Page = Convert.ToInt32(Request["pagesize"]); //获得总记录数
nRecCount = pd.GetObjectCountByTime(timeStart, timeEnd);
StringBuilder strHtml = new StringBuilder(""); //判断是否存在数据记录
if (nRecCount > 0)
{
//确定数据记录要显示的页面数
nPageCount = nRecCount / Record_Per_Page;
if (nRecCount % Record_Per_Page > 0)
nPageCount++;
if (nPage < 1)
nPage = 1;
if (nPage > nPageCount)
nPage = nPageCount; //将页面显示到屏幕上,并作连接
for (int i = 1; i <= nPageCount; i++)
{
strHtml.Append("<a href='Dengji.aspx?page=" + i + "×tart=" + timeStart.ToString("yyyy-MM-dd") + "&timeend=" + timeEnd.ToString("yyyy-MM-dd") + " '>");
//strHtml.Append("<a href='Dengji.aspx?page=" + i + "'>");
if (i == nPage) strHtml.Append("<b>" + i + "</b>");
else strHtml.Append(i);
strHtml.Append("</a> "); } //确认当前页面的开始记录和终止记录
int nStart = Record_Per_Page * (nPage - 1);
int nEnd = nStart + Record_Per_Page - 1;
if (nEnd > nRecCount - 1)
nEnd = nRecCount - 1; strlnk = strHtml.ToString(); StringBuilder StrSql = new StringBuilder();
StringBuilder strSql = new StringBuilder();
StrSql.AppendFormat("SELECT distinct TOP {0} * FROM C_Work_Object WHERE ", Record_Per_Page.ToString());
StrSql.AppendFormat("( Obj_id NOT IN (SELECT TOP {0} Obj_id FROM C_Work_Object", (Record_Per_Page * (nPage - 1)).ToString());
if (timeStart != DateTime.MinValue || timeEnd != DateTime.MinValue)
{
StrSql.Append(" where ");
if (timeStart == DateTime.MinValue)
{
StrSql.AppendFormat(" Obj_dotime < '{0}'", timeEnd.ToString());
strSql.AppendFormat(" Obj_dotime < '{0}')", timeEnd.ToString());
}
else if (timeEnd == DateTime.MinValue)
{
StrSql.AppendFormat(" Obj_dotime > '{0}'", timeStart.ToString());
strSql.AppendFormat(" Obj_dotime > '{0}')", timeStart.ToString());
}
else
{
StrSql.AppendFormat(" Obj_dotime between '{0}' and '{1}'", timeStart.ToString(), timeEnd.ToString());
strSql.AppendFormat(" Obj_dotime between '{0}' and '{1}')", timeStart.ToString(), timeEnd.ToString());
}
}
StrSql.Append(" ORDER BY Obj_id DESC)");
StrSql.Append(" and ");
strSql.Append(" ORDER BY Obj_id DESC");
pdperson = pd.GetObjectBySql(StrSql.ToString() +strSql.ToString() );
}
}
这是我的分页代码,没有问题的,但
<%
//if (trcount == 0) return;
for (int i = nStart; i <= nEnd; i++)
{
ProcessData(Convert.ToInt32(pdperson.Rows[i]["Obj_id"]));
%>
<tr>
<td style="width:300px"><%=pdperson.Rows[i]["Obj_caseid"].ToString()%></td>
</tr>
<%
}
%>
每个页面只输出了一条记录,我想每个页面输出20条记录,怎么做啊??望大狭们指教啊???急
DataGrid支持自动分页的。