在html设计窗口下可以简单如下实现:
<asp:Repeater id=Repeater1 runat="server">
<ItemTemplate>
<tr>
<td> <%# Container.DataItem %> </td>
</tr>
</ItemTemplate>
</>
可是我现在想在cs代码中设置ItemTemplate属性,改怎么办呀!我查MSDN也没有发现
多谢高手帮助!!!
by the way,我现在使用WebControl.Table对象来设置窗体,完全不用Asp.NEt中的html设计方式
参考一下 MSDN DataList.ItemCreated 事件
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWebUIWebControlsDataListClassItemCreatedic.htm
我刚写的,正好我也在思考这个问题:
public class RepeaterItemTemplate :ITemplate
{
private string _colname;
/// <summary>
/// 绑定的列名
/// </summary>
public string ColumnName
{
get {return _colname;}
set {_colname = value;}
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ColumnName">绑定的列名</param>
public RepeaterItemTemplate(string ColumnName)
{
//
// TODO: 在此处添加构造函数逻辑
//
_colname = ColumnName;
}
#region ITemplate 成员
public void InstantiateIn(Control container)
{
// TODO: 添加 ucGridTemplateColumn.InstantiateIn 实现
//用Label控件来显示字段的文本
Label l = new Label();
l.DataBinding +=new EventHandler(l_DataBinding);
container.Controls.Add(l);
}
#endregion
//数据绑定
private void l_DataBinding(object sender, EventArgs e)
{
Label l = (Label)sender;
RepeaterItem container = (RepeaterItem) l.NamingContainer;
l.Text = ( (DataRowView) container.DataItem)[_colname].ToString();
}
然后在你的放有Repeater控件的页面的CS文件中写:
private void Page_Load(object sender, System.EventArgs e)
{
DataSet ds = data.GetDs(Sql);
//你自己的查询语句
BindRepeater(ds);
}
//绑定
private void BindRepeater(DataSet ds)
{
//绑定你的列名
Repeater1.ItemTemplate = new RepeaterItemTemplate("str_TaskName");
Repeater1.DataSource = ds;
Repeater1.DataBind();
}
这样就显示了
具体显示的格式啊,样式啊,颜色在自己控制