欢迎光临

木子屋

标题: 以编程方式设置Repeater控件模板示例

作者: dnawo

日期: 2010-03-18 03:01 PM

分类: Web编程

内容: 数据绑定控件Repeater有好几个模板，如HeaderTemplate、FooterTemplate和ItemTemplate等，它们都是ITemplate接口类型，因而，要以编程方式设置Repeater控件模板，只需给相应模板属性赋值一个ITemplate接口类型实例即可。下边是一个简单示例：
复制内容到剪贴板 程序代码using System;
using System.Web.UI;
using System.Web.UI.WebControls;
/// <summary>
/// 自定义模板类
/// 实现了ITemplate接口
/// </summary>
public class CustomTemplate : ITemplate
{
/// <summary>
/// ITemplate接口成员
/// </summary>
/// <param name="container"></param>
public void InstantiateIn(Control container)
{
Label label = new Label();
//在绑定数据源时设置内容
label.DataBinding += new EventHandler(DataBinding);
container.Controls.Add(label);
}
/// <summary>
/// 绑定数据时发生
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataBinding(object sender, EventArgs e)
{
Label label = sender as Label;
if (label != null)
{
/*
*
* 步骤：
* 1).获取数据绑定控件(Repeater、DataList、DataGrid)中的项
* 2).从行控件中获取数据赋值给Label控件
*
*/
IDataItemContainer container = null;
if (label.NamingContainer is RepeaterItem) //label.NamingContainer即为数据绑定控件的项
container = (RepeaterItem)label.NamingContainer;
else if (label.NamingContainer is DataListItem)
container = (DataListItem)label.NamingContainer;
else if (label.NamingContainer is DataGridItem)
container = (DataGridItem)label.NamingContainer;
if (container != null)
label.Text = DataBinder.Eval(container.DataItem, "ProductName", null);
}
}
}
客户端调用：
复制内容到剪贴板 程序代码using System;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.ItemTemplate = new CustomTemplate();//设置模板
DataList1.ItemTemplate = new CustomTemplate();//设置模板
using (SqlConnection conn = new SqlConnection("server=(local);database=Northwind;user id=sa;password=sa;"))
{
using (SqlDataAdapter adapter = new SqlDataAdapter("Select * FROM Products", conn))
{
DataTable table = new DataTable();
adapter.Fill(table);
Repeater1.DataSource = table;
Repeater1.DataBind();
DataList1.DataSource = table;
DataList1.DataBind();
}
}

}
}

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.800 ms

返回

标题: 以编程方式设置Repeater控件模板示例

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.800 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.831 ms

返回