動(dòng)態(tài)生成table并實(shí)現(xiàn)分頁效果心得分享
更新時(shí)間:2013年04月10日 17:13:35 作者:
動(dòng)態(tài)生成table并實(shí)現(xiàn)分頁在開發(fā)過程中時(shí)一個(gè)很好的應(yīng)用,接下來本文也要實(shí)現(xiàn)一個(gè)類似效果,感興趣的朋友可以參考下哈
前臺(tái)代碼:
<table style="width: 100%;">
<tr>
<td>
搜索字: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="搜索" OnClick="Button1_Click" />
</td>
</tr>
<tr>
<td>
<div id="divmain" runat="server"> </div>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnFirst" runat="server" Text="首頁" OnClick="btnFirst_Click" />
<asp:Button ID="btnPro" runat="server" Text="上一頁" OnClick="btnPro_Click" />
<asp:Button ID="btnNext" runat="server" Text="下一頁" OnClick="btnNext_Click" />
<asp:Button ID="btnLast" runat="server" Text="末頁" OnClick="btnLast_Click" />
<asp:Label ID="labCountPage" runat="server"></asp:Label>
<asp:Label ID="labpage" runat="server"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" Width="16px"></asp:TextBox>
<asp:Button ID="btnGo" runat="server" OnClick="btnGo_Click" Text="Go" />
</td>
</tr>
</table>
后臺(tái)代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageIndex"] = 1;
dataPage();
}
}
private void dataPage()
{
string constr = @"data source=.;initial catalog=News;user id=sa;password=111111;";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
#region 用存儲(chǔ)過程實(shí)現(xiàn)數(shù)據(jù)分頁效果
//cmd.CommandType = CommandType.StoredProcedure;
//cmd.CommandText = "Pro_SelectNewsPage";
//cmd.Parameters.AddWithValue("@pageIndex", Convert.ToInt32(ViewState["pageIndex"]));
//cmd.Parameters.AddWithValue("@pageSize", 3);
//SqlParameter parm = new SqlParameter("@count", SqlDbType.Int);
//cmd.Parameters.Add(parm);
//parm.Direction = ParameterDirection.Output;
#endregion
#region 傳遞SQl語句實(shí)現(xiàn)分頁并對搜索實(shí)現(xiàn)分頁默認(rèn)顯示兩條記錄
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select top 2 * from (select * from T_News where NewsTitle like @title) as t where t.Id not in(select top ((@pageIndex-1)*2) t.Id from (select * from T_News where NewsTitle like @title) as t) order by t.Id";
cmd.Parameters.AddWithValue("@pageIndex", Convert.ToInt32(ViewState["pageIndex"]));
cmd.Parameters.AddWithValue("@title","%"+TextBox1.Text.Trim()+"%");
#endregion
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
//ViewState["pageCount"] = parm.Value;
cmd.CommandText = "select count(*) from T_News where NewsTitle like @titles";
cmd.Parameters.AddWithValue("@titles", "%" + TextBox1.Text.Trim() + "%");
int sum = Convert.ToInt32(cmd.ExecuteScalar());
if (sum % 2 == 0)
{
ViewState["pageCount"] = sum/2;
}
else
{
ViewState["pageCount"] = sum / 2 + 1;
}
conn.Close();
conn.Dispose();
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
foreach (DataRow row in dt.Rows)
{
sb.Append("<tr><td>"+row["NewsTitle"].ToString()+"</td>");
sb.Append("<td>" + row["NewsContent"].ToString() + "</td>");
sb.Append("<td>" + row["CreateTime"].ToString() + "</td></tr>");
}
sb.Append("</table>");
divmain.InnerHtml = sb.ToString();
labCountPage.Text = "總共" + ViewState["pageCount"] + "頁";
labpage.Text = "當(dāng)前第" + ViewState["pageIndex"] + "頁";
}
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] = "1";
dataPage();
}
protected void btnFirst_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] = "1";
dataPage();
}
protected void btnPro_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(ViewState["pageIndex"]);
index--;
if (index >= 1)
{
ViewState["pageIndex"] = index;
dataPage();
}
}
protected void btnNext_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(ViewState["pageIndex"]);
index++;
if (index <= Convert.ToInt32(ViewState["pageCount"]))
{
ViewState["pageIndex"] = index;
dataPage();
}
}
protected void btnLast_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] =ViewState["pageCount"];
dataPage();
}
protected void btnGo_Click(object sender, EventArgs e)
{
int i=Convert.ToInt32(TextBox2.Text);
if (i > 0 && i <= Convert.ToInt32(ViewState["pageCount"]))
{
ViewState["pageIndex"] = i;
dataPage();
}
}
復(fù)制代碼 代碼如下:
<table style="width: 100%;">
<tr>
<td>
搜索字: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="搜索" OnClick="Button1_Click" />
</td>
</tr>
<tr>
<td>
<div id="divmain" runat="server"> </div>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnFirst" runat="server" Text="首頁" OnClick="btnFirst_Click" />
<asp:Button ID="btnPro" runat="server" Text="上一頁" OnClick="btnPro_Click" />
<asp:Button ID="btnNext" runat="server" Text="下一頁" OnClick="btnNext_Click" />
<asp:Button ID="btnLast" runat="server" Text="末頁" OnClick="btnLast_Click" />
<asp:Label ID="labCountPage" runat="server"></asp:Label>
<asp:Label ID="labpage" runat="server"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" Width="16px"></asp:TextBox>
<asp:Button ID="btnGo" runat="server" OnClick="btnGo_Click" Text="Go" />
</td>
</tr>
</table>
后臺(tái)代碼:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageIndex"] = 1;
dataPage();
}
}
private void dataPage()
{
string constr = @"data source=.;initial catalog=News;user id=sa;password=111111;";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
#region 用存儲(chǔ)過程實(shí)現(xiàn)數(shù)據(jù)分頁效果
//cmd.CommandType = CommandType.StoredProcedure;
//cmd.CommandText = "Pro_SelectNewsPage";
//cmd.Parameters.AddWithValue("@pageIndex", Convert.ToInt32(ViewState["pageIndex"]));
//cmd.Parameters.AddWithValue("@pageSize", 3);
//SqlParameter parm = new SqlParameter("@count", SqlDbType.Int);
//cmd.Parameters.Add(parm);
//parm.Direction = ParameterDirection.Output;
#endregion
#region 傳遞SQl語句實(shí)現(xiàn)分頁并對搜索實(shí)現(xiàn)分頁默認(rèn)顯示兩條記錄
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select top 2 * from (select * from T_News where NewsTitle like @title) as t where t.Id not in(select top ((@pageIndex-1)*2) t.Id from (select * from T_News where NewsTitle like @title) as t) order by t.Id";
cmd.Parameters.AddWithValue("@pageIndex", Convert.ToInt32(ViewState["pageIndex"]));
cmd.Parameters.AddWithValue("@title","%"+TextBox1.Text.Trim()+"%");
#endregion
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
//ViewState["pageCount"] = parm.Value;
cmd.CommandText = "select count(*) from T_News where NewsTitle like @titles";
cmd.Parameters.AddWithValue("@titles", "%" + TextBox1.Text.Trim() + "%");
int sum = Convert.ToInt32(cmd.ExecuteScalar());
if (sum % 2 == 0)
{
ViewState["pageCount"] = sum/2;
}
else
{
ViewState["pageCount"] = sum / 2 + 1;
}
conn.Close();
conn.Dispose();
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
foreach (DataRow row in dt.Rows)
{
sb.Append("<tr><td>"+row["NewsTitle"].ToString()+"</td>");
sb.Append("<td>" + row["NewsContent"].ToString() + "</td>");
sb.Append("<td>" + row["CreateTime"].ToString() + "</td></tr>");
}
sb.Append("</table>");
divmain.InnerHtml = sb.ToString();
labCountPage.Text = "總共" + ViewState["pageCount"] + "頁";
labpage.Text = "當(dāng)前第" + ViewState["pageIndex"] + "頁";
}
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] = "1";
dataPage();
}
protected void btnFirst_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] = "1";
dataPage();
}
protected void btnPro_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(ViewState["pageIndex"]);
index--;
if (index >= 1)
{
ViewState["pageIndex"] = index;
dataPage();
}
}
protected void btnNext_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(ViewState["pageIndex"]);
index++;
if (index <= Convert.ToInt32(ViewState["pageCount"]))
{
ViewState["pageIndex"] = index;
dataPage();
}
}
protected void btnLast_Click(object sender, EventArgs e)
{
ViewState["pageIndex"] =ViewState["pageCount"];
dataPage();
}
protected void btnGo_Click(object sender, EventArgs e)
{
int i=Convert.ToInt32(TextBox2.Text);
if (i > 0 && i <= Convert.ToInt32(ViewState["pageCount"]))
{
ViewState["pageIndex"] = i;
dataPage();
}
}
相關(guān)文章
利用asp.net實(shí)現(xiàn)生成不重復(fù)訂單號(hào)
訂單號(hào)在購物過程中起到了很好的識(shí)別作用,更方便的有利于工作人員識(shí)別商品,本文介紹利用asp.net實(shí)現(xiàn)生成訂單號(hào)2012-12-12
使用AjaxPro.Net框架實(shí)現(xiàn)在客戶端調(diào)用服務(wù)端的方法
AjaxPro.Net是一個(gè)優(yōu)秀的.net環(huán)境下的Ajax框架,用法很簡單,可以查閱相關(guān)資料,本文檔是一個(gè)簡單的實(shí)例講述使用AjaxPro的幾個(gè)關(guān)鍵點(diǎn)。2011-02-02
通過ASP.net實(shí)現(xiàn)flash對數(shù)據(jù)庫的訪問
近來網(wǎng)站需要在flash中提取數(shù)據(jù)庫中的數(shù)據(jù),從網(wǎng)上找了一點(diǎn)資料,今天下午在自己的機(jī)器上實(shí)現(xiàn)了一下,還是比較簡單的。2009-08-08
asp.net得到本機(jī)數(shù)據(jù)庫實(shí)例的兩種方法代碼
這篇文章介紹了asp.net得到本機(jī)數(shù)據(jù)庫實(shí)例的兩種方法代碼,有需要的朋友可以參考一下2013-07-07
解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法
這篇文章主要介紹了解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法,需要的朋友可以參考下2016-06-06

