不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
以编程方式设置Repeater控件模板示例
编辑:dnawo 日期:2010-03-18
数据绑定控件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.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();
}
}
}
}
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 | 引用: 0 | 查看次数: 4441
发表评论
请登录后再发表评论!