阿里妈妈,帮你实现网络赚钱梦,流量变成现金!
最近一直在做报表类的东西,在界面上用一些GridView和Repeater来呈现。由于几个报表的样式都不一样,在界面上拖了好几个Repeater,都设置了不同的模板,看着这么多代码我都觉得好乱。像这样的情况,要是有一个通用的repeater控件就好了。在网上搜索了下,只在MSDN上找到一些创建模板类的资料。
此模板类要实现 ITemplate 接口,MSDN的例子:http://msdn.microsoft.com/zh-cn/library/0e39s2ck%28VS.80%29.aspx
上面这个例子讲得很详细,我只是参考它做了些改动,让模板类能够实现绑定repeater数据源的所有列,下面是修改过的部分代码
复制内容到剪贴板
程序代码
程序代码 public void InstantiateIn(System.Web.UI.Control container)
{
PlaceHolder ph = new PlaceHolder();
switch (templateType)
{
case ListItemType.Header:
string str = "";
for (int i = 0; i < Header.Length; i++)
str += "<td>" + Header[i] + "</td>";
ph.Controls.Add(new LiteralControl("<table border=\"0\" cellspacing=\"1\"><tr>" + str + "</tr>"));
break;
case ListItemType.Item: //这里设置数据项
ph.Controls.Add(new LiteralControl("<tr>"));
for (int i = 0; i < Items.Count; i++)
{
Label lblitem = new Label();
lblitem.ID = Items[i];
ph.Controls.Add(new LiteralControl("<td>"));
ph.Controls.Add(lblitem);
ph.Controls.Add(new LiteralControl("</td>"));
}
ph.Controls.Add(new LiteralControl("</tr>"));
ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.Footer:
ph.Controls.Add(new LiteralControl("</table>"));
break;
}
container.Controls.Add(ph);
}
{
PlaceHolder ph = new PlaceHolder();
switch (templateType)
{
case ListItemType.Header:
string str = "";
for (int i = 0; i < Header.Length; i++)
str += "<td>" + Header[i] + "</td>";
ph.Controls.Add(new LiteralControl("<table border=\"0\" cellspacing=\"1\"><tr>" + str + "</tr>"));
break;
case ListItemType.Item: //这里设置数据项
ph.Controls.Add(new LiteralControl("<tr>"));
for (int i = 0; i < Items.Count; i++)
{
Label lblitem = new Label();
lblitem.ID = Items[i];
ph.Controls.Add(new LiteralControl("<td>"));
ph.Controls.Add(lblitem);
ph.Controls.Add(new LiteralControl("</td>"));
}
ph.Controls.Add(new LiteralControl("</tr>"));
ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.Footer:
ph.Controls.Add(new LiteralControl("</table>"));
break;
}
container.Controls.Add(ph);
}
打算把这个类做好一点,起码能实现基本的要求,以后再慢慢修改完善它~~~
PS: 我的C#交流群--30954402,欢迎加入交流开发经验~~
发表评论
上一篇:
下一篇: 
文章来自:
文章标签:
网摘收录: