1:页面图片显示
2:布局图片显示。DataGrid控件自行布局
我还是附上吧,哈哈,这样比较方便
<tr valign="top">
<td valign="middle" colspan="2">
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" style="height:30px">
<tr valign="top">
<td valign="middle" align="left">
<asp:Label ID="pageInfo" runat="server">共0条,分1页,第1页</asp:Label>
其中每页:<asp:TextBox
ID="PageSize" runat="server" Text="30" Width="40px"></asp:TextBox>条记录
</td>
<td align="right" valign="middle">
<asp:LinkButton ID="Linkbutton1" runat="server" ForeColor="#218fee"
οnclick="Linkbutton1_Click" >首 页</asp:LinkButton>
<asp:LinkButton ID="Linkbutton2" runat="server" ForeColor="#218fee"
οnclick="Linkbutton1_Click" >上一页</asp:LinkButton>
<asp:LinkButton ID="Linkbutton3" runat="server" ForeColor="#218fee"
οnclick="Linkbutton1_Click" >下一页</asp:LinkButton>
<asp:LinkButton ID="Linkbutton4" runat="server" ForeColor="#218fee"
οnclick="Linkbutton1_Click" >尾 页</asp:LinkButton>
跳转<input id="newpage" type="text" size="4" name="newpage" runat="server"/>页
<asp:LinkButton ID="Linkbutton5" runat="server" ForeColor="#218fee"
οnclick="Linkbutton1_Click" >GO</asp:LinkButton>
</td>
</tr>
</table>
</td>
</tr>
3:分页的点击事件代码
protected void Linkbutton1_Click(object sender, EventArgs e)
{
int nIndex2 = -1;
LinkButton b = null;
if (sender.GetType() != typeof(LinkButton)) return;
b = sender as LinkButton;
int nCurrentPageIndex = 1;
int nPageCount = 0;
string str1 = ViewState["CurPageIndex"] != null ? ViewState["CurPageIndex"].ToString() : "";
string str2 = ViewState["PageCount"] != null ? ViewState["PageCount"].ToString() : "";
if (str1 == "" || !int.TryParse(str1, out nCurrentPageIndex)) nCurrentPageIndex = 1;
if (str2 == "" || !int.TryParse(str2, out nPageCount)) nPageCount = 1;
switch (b.ID)
{
case "Linkbutton1": //定位第一页
newpage.Value = "";
nIndex2 = 1;
break;
case "Linkbutton2": //定位上一页
newpage.Value = "";
nIndex2 = nCurrentPageIndex - 1;
if (nIndex2 == 0) nIndex2 = 1;
break;
case "Linkbutton3": //定位下一页
newpage.Value = "";
nIndex2 = nCurrentPageIndex + 1;
if (nIndex2 >= nPageCount + 1) nIndex2 = nPageCount;
break;
case "Linkbutton4": //定位最末页
newpage.Value = "";
nIndex2 = nPageCount;
break;
case "Linkbutton5"://导航到某一页
if (!int.TryParse(newpage.Value.Trim(), out nIndex2)) nIndex2 = nCurrentPageIndex;
if (nIndex2 > nPageCount) nIndex2 = nPageCount;
if (nIndex2 == 0)
{
newpage.Value = "1";
nIndex2 = 1;
}
break;
default:
nIndex2 = nCurrentPageIndex;
break;
}
if (nIndex2 < 0) return;
GetPageIndex(nIndex2); //取分页的数据
}
private void GetPageIndex(int pageIndex)
{
pageInfo.Text = "第1页/共10页,共150条记录 每页15条";
newpage.Value = "0";
//下面是正式的代码
int nPageSize = 30; //每页显示多少条
int nCurPageIndex = 0;
int nPageCount = 0; //共多少页
int nPageIndex = pageIndex;//第几页
int nRecordSetCount = 0; //共多少记录
string strPageInfo = "第{2}页/共{1}页,共{0}条记录,每页{3}条";
string strErrMsg = "";
string strFilter = GetFileter();
string strSort = ViewState["SortString"] != null ? ViewState["SortString"].ToString() : "";
if (PageSize.Text.Trim() != "")
{
if (!int.TryParse(PageSize.Text.Trim(), out nPageSize)) nPageSize = 30;
}
PageSize.Text = nPageSize.ToString();
DbHelper db= new DbHelper();
DataTable dt = db.GetProjectBasicTable(strFilter, strSort, nPageSize, ref nPageIndex, ref nRecordSetCount, ref nPageCount, out strErrMsg);
if (dt == null)
{
(Context.ApplicationInstance as Global).MessageBox(strErrMsg);
return;
}
nCurPageIndex = nPageIndex;//当前页数
//显示分页信息
pageInfo.Text = String.Format(strPageInfo, nRecordSetCount, nPageCount, nPageIndex, nPageSize);
if (nPageIndex <= nPageCount) newpage.Value = nPageIndex.ToString();
else newpage.Value = "0";
ViewState["CurPageIndex"] = nCurPageIndex.ToString();//当前页面
ViewState["PageCount"] = nPageCount.ToString();//所有页数
。。。。。。后面是自己想要实现的一些程序判断
}
4:DbHelper 类
public DataTable GetProjectBasicTable(string strFilter, string strSort, int nPageSize, ref int nPageIndex, ref int nRecordSetCount, ref int nPageCount, out string strErrMsg)
{
//看个人的程序代码而定,我这里是需要判断是否登录
if (HttpContext.Current.Session["QciWeb"] == null)
{
strErrMsg = "会话意外丢失!请重新登录。";
return null;
}
strErrMsg = "";
nRecordSetCount = 0;
nPageCount = 0;
SqlConnection conn = null;
SqlCommand comm = null;
SqlDataAdapter da = null;
DataTable dt = null;
object objResult = null;
int nFirstIndex = 0;
//这里是web.config连数据库的连接字符串
string strConnection = WebConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
string strSQL1 = @"查询所有的sql数据的总数(count) {0}";
string strSQL2 = @" 查询所有的sql数据 {0}{1}";
if (strSort != "") strSort = "order by " + strSort;
else strSort = "order by 时间排序 desc";
strSQL1 = string.Format(strSQL1, strFilter);
strSQL2 = string.Format(strSQL2, strFilter, strSort);
try
{
conn = new SqlConnection(strConnection);
conn.Open();
comm = new SqlCommand(strSQL1, conn);
objResult = comm.ExecuteScalar();
nRecordSetCount = int.Parse(objResult.ToString());
//修正总的页数
nPageCount = nRecordSetCount / nPageSize;
if (nPageCount * nPageSize < nRecordSetCount) nPageCount++;
//修正开始页数
if (nPageIndex > nPageCount) nPageIndex = nPageCount;
else if (nPageIndex == 0) nPageIndex = 1;
//修正开始记录数
nFirstIndex = (nPageIndex - 1) * nPageSize;
if (nFirstIndex < 0) nFirstIndex = 0;
dt = new DataTable();
da = new SqlDataAdapter(comm);
da.SelectCommand.CommandText = strSQL2;
da.Fill(dt);
return dt;
}
catch (Exception oe)
{
strErrMsg = oe.Message;
return null;
}
finally
{
if (dt != null) dt.Dispose();
if (comm != null) comm.Dispose();
if (da != null) da.Dispose();
if (conn != null)
{
if (conn.State == ConnectionState.Open) conn.Close();
conn.Dispose();
}
da = null;
conn = null;
dt = null;
comm = null;
}
}
5:运行的效果显示
分页代码比较旧式,将就看吧。