在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前台代码: 复制代码 代码如下: <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(); } } |
请发表评论