您的位置:首页 > 其它

动态生成table并实现分页效果

2013-04-09 19:48 525 查看
前台代码:

<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>

后台代码:

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 用存储过程实现数据分页效果

//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语句实现分页并对搜索实现分页默认显示两条记录

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 = "当前第" + 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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: