c#datalist分页代码
### C# Datalist 分页代码详解 #### 标题:C# Datalist 分页代码 #### 描述:C# Datalist 分页代码 ASPX 页面的详细代码。建议有一定基础的人下载。 #### 标签:C# Datalist 分页 #### 部分内容解读与扩展知识点: ##### 一、数据查询与填充 通过提供的部分代码片段,我们可以看到一个 SQL 查询语句被用来获取符合特定条件的数据: ```csharp SqlDataAdapter result2 = new SqlDataAdapter( "SELECT * FROM news WHERE (newsname LIKE '%' + @searchTerm + '%' OR newsContent LIKE '%' + @searchTerm + '%') AND (TypeNo = @typeNo)", conn); // 使用参数化查询来防止SQL注入 result2.SelectCommand.Parameters.AddWithValue("@searchTerm", TextBox1.Text.Trim()); result2.SelectCommand.Parameters.AddWithValue("@typeNo", ds.Tables["newsbt1"].Rows[0]["TypeNo"].ToString().Trim()); result2.Fill(ds, "newsbt2"); ``` 这里的关键点包括: - **SQL 查询语句**:通过 `LIKE` 关键字实现模糊查询,并且通过条件过滤 `TypeNo` 字段。 - **参数化查询**:使用参数化查询可以有效防止 SQL 注入攻击。 - **数据填充**:使用 `Fill` 方法将查询结果填充到 `DataSet` 的表 `"newsbt2"` 中。 ##### 二、图片处理 接下来的代码片段用于处理数据行中的图片路径: ```csharp foreach (DataRow row in ds.Tables["newsbt2"].Rows) { if (row["pic_sign"].ToString().Trim() != "2") { row["pic_addr"] = "imag/no_pro.jpg"; } } ``` 这个循环的主要目的是检查每一条数据记录中的 `"pic_sign"` 字段是否为 `"2"`。如果不是,那么 `"pic_addr"` 字段会被设置为默认图片路径 `"imag/no_pro.jpg"`。 ##### 三、分页实现 这部分代码展示了如何使用 `PagedDataSource` 类实现分页功能: ```csharp PagedDataSource objfy = new PagedDataSource(); objfy.DataSource = ds.Tables["newsbt2"].DefaultView; objfy.AllowPaging = true; objfy.PageSize = 6; int curpage; if (Request.QueryString["Page"] != null) { curpage = Convert.ToInt32(Request.QueryString["Page"]); } else { curpage = 1; } objfy.CurrentPageIndex = curpage - 1; Label1.Text = curpage.ToString(); // 设置上一页和下一页链接 if (!objfy.IsFirstPage) { HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + (curpage - 1); } if (!objfy.IsLastPage) { HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + (curpage + 1); } this.DataList1.DataSource = objfy; this.DataList1.DataBind(); ``` 这里的关键步骤包括: - 创建 `PagedDataSource` 实例,并将其数据源设置为 `DataTable` 的 `DefaultView`。 - 设置 `AllowPaging` 属性为 `true` 表示启用分页。 - 设置 `PageSize` 属性为每页显示的条目数量(这里是 6)。 - 获取当前页码,如果没有指定则默认为第一页。 - 更新 `CurrentPageIndex` 属性以反映当前页码。 - 设置页面上的标签和超链接以显示当前页码和提供上一页/下一页导航功能。 - 将 `PagedDataSource` 设置为 `DataList` 控件的数据源,并调用 `DataBind` 方法进行绑定。 ##### 四、总结 通过以上分析可以看出,这段代码主要实现了以下功能: - **数据查询与填充**:使用 SQL 查询获取符合条件的数据并填充到 `DataSet`。 - **图片处理**:根据特定条件设置图片路径。 - **分页功能**:利用 `PagedDataSource` 控件实现数据分页展示。 此外,我们还可以了解到: - **参数化查询**:使用参数化查询可以提高安全性。 - **`PagedDataSource` 属性**:了解其关键属性如 `AllowPaging`, `PageSize` 等的作用。 - **数据绑定**:如何将分页后的数据绑定到 `DataList` 控件中。 这些知识点对于理解和实现 C# ASP.NET 应用程序中的分页功能非常重要。
result2.Fill(ds, "newsbt2");
foreach (DataRow row in ds.Tables["newsbt2"].Rows)
{
if (row["pic_sign"].ToString().Trim() != "2")
{
row["pic_addr"] = "imag/no_pro.jpg";
}
}
//分页
PagedDataSource objfy = new PagedDataSource();
objfy.DataSource=ds.Tables["newsbt2"].DefaultView;
objfy.AllowPaging = true;
objfy.PageSize = 6;
int curpage; //页码
if (Request.QueryString["Page"] != null)
curpage = Convert.ToInt32(Request.QueryString["Page"]);
else
curpage = 1;
objfy.CurrentPageIndex = curpage - 1;
Label1.Text = curpage.ToString();
if(!objfy.IsFirstPage)
{
HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToInt32(curpage-1);
}
if (!objfy.IsLastPage)
- 流星承诺2012-08-18说明很详细。。但是代码太乱。
- lk20091141112012-09-03还行 基本能看明白 就是有点凌乱 没整理完全
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助