#region 动态生成Repeater模板
public class MyTemplate : ITemplate
{
System.Web.UI.WebControls.ListItemType templateType;
static int titleLength;
public MyTemplate(System.Web.UI.WebControls.ListItemType type)
{
templateType = type;
}
#region ITemplate 成员 public void InstantiateIn(Control container)
{
PlaceHolder ph = new PlaceHolder();
//Label item1 = new Label();
//HyperLink item2 = new HyperLink();
//Label item3 = new Label();
//item1.ID = "item1";
//item2.ID = "item2"; switch (templateType)
{
case ListItemType.Header:
ph.Controls.Add(new LiteralControl("<table border=\"1\" width=\"100%\" class=\"grd\">"));
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_title\">Task Name<br />任务名称"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">BBAC CN No<br />更改通知书号"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Initiator<br />发起人"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Department Name<br />所在部门"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">AeJ<br />年度型"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Date<br />日期"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Status<br />状态"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">View<br />查看"));
ph.Controls.Add(new LiteralControl("</td></tr>"));
break;
case ListItemType.Item:
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\" align=\"center\" width=\"45\">"));
ph.Controls.Add(new LiteralControl("</td></tr>"));
ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.AlternatingItem:
//ph.Controls.Add(new LiteralControl("<tr><td>"));
//ph.Controls.Add(item2);
//ph.Controls.Add(new LiteralControl("</td><td>"));
//ph.Controls.Add(item1);
//ph.Controls.Add(new LiteralControl("</td></tr>"));
//ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.Footer:
ph.Controls.Add(new LiteralControl("</table>"));
break;
}
container.Controls.Add(ph);
} #endregion static void Item_DataBinding(object sender, System.EventArgs e)
{
} } #endregion 请问在设置ItemTemplate的时候,我如何实现Eval
绑定某数据列显示哪位大侠帮个忙 解答一下 还有就是有可能在某一列的td中加个超链接什么的 怎么弄
public class MyTemplate : ITemplate
{
System.Web.UI.WebControls.ListItemType templateType;
static int titleLength;
public MyTemplate(System.Web.UI.WebControls.ListItemType type)
{
templateType = type;
}
#region ITemplate 成员 public void InstantiateIn(Control container)
{
PlaceHolder ph = new PlaceHolder();
//Label item1 = new Label();
//HyperLink item2 = new HyperLink();
//Label item3 = new Label();
//item1.ID = "item1";
//item2.ID = "item2"; switch (templateType)
{
case ListItemType.Header:
ph.Controls.Add(new LiteralControl("<table border=\"1\" width=\"100%\" class=\"grd\">"));
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_title\">Task Name<br />任务名称"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">BBAC CN No<br />更改通知书号"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Initiator<br />发起人"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Department Name<br />所在部门"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">AeJ<br />年度型"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Date<br />日期"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Status<br />状态"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">View<br />查看"));
ph.Controls.Add(new LiteralControl("</td></tr>"));
break;
case ListItemType.Item:
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\" align=\"center\" width=\"45\">"));
ph.Controls.Add(new LiteralControl("</td></tr>"));
ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.AlternatingItem:
//ph.Controls.Add(new LiteralControl("<tr><td>"));
//ph.Controls.Add(item2);
//ph.Controls.Add(new LiteralControl("</td><td>"));
//ph.Controls.Add(item1);
//ph.Controls.Add(new LiteralControl("</td></tr>"));
//ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.Footer:
ph.Controls.Add(new LiteralControl("</table>"));
break;
}
container.Controls.Add(ph);
} #endregion static void Item_DataBinding(object sender, System.EventArgs e)
{
} } #endregion 请问在设置ItemTemplate的时候,我如何实现Eval
绑定某数据列显示哪位大侠帮个忙 解答一下 还有就是有可能在某一列的td中加个超链接什么的 怎么弄
解决方案 »
- asp.net 如何对Calendar日历控件打开后不选择日期,失去焦点后自动隐藏
- 【 使用 Visual C# .NET 的 ToArray(type) 方法返回強類型數組】
- sql语句的问题,大家帮忙看看。
- server.transfer问题,请大家帮忙~~~,着急
- ASP.NET基础问题
- 请教大侠:为什么我上传到服务器上的二进制文件(PDF,CAJ)等文件没有用,是一片空白?
- 简单问题,有关WebForm顺序的`
- 请问:Winform 中的listView控件 ListView1.SelectedItems[0].Tag.ToString()中的Tag是如何附值和取值的?
- 验证用户名是否存在
- 如果索引动态创建的控件
- FileUpload 上传BMP图片出错
- 因为数据库正在使用,所以未能获得对数据库的排它访问权
2、实例一个链接,然后直接ph.Controls.Add(链接对象的名字)
list.ItemTemplate = Page.LoadTemplate("A.ascx");
list.ItemDataBound += new DataListItemEventHandler(list_ItemDataBound);
list.DataSource = dt;
list.DataBind();void list_ItemDataBound(object sender, DataListItemEventArgs e)
{
Control ctrl = e.Item.Controls[0];
Label lbl = (Label)ctrl.FindControl("lbl");
lbl.Text = DataBinder.Eval(e.Item.DataItem, "name").ToString();
}class MyTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
Literal lbl = new Literal();
lbl.DataBinding += new EventHandler(lbl_DataBinding);
container.Controls.Add(lbl);
}
private void lbl_DataBinding(object sender, EventArgs e)
{
Literal lbl = (Literal)sender;
lbl.Text = "<a href=\"" + DataBinder.Eval(((DataListItem)lbl.NamingContainer).DataItem, "Link").ToString() + "\">" + DataBinder.Eval(((DataListItem)lbl.NamingContainer).DataItem, "Name").ToString() + "</a>";
}
wuyq11 没太看明白你的意思
因为不确定要用多少个repeater来展示数据 至于为什么不用table? 我想使用repeater的ItemCommand事件
public class MyTemplate : ITemplate
{
System.Web.UI.WebControls.ListItemType templateType;
static int titleLength;
public MyTemplate(System.Web.UI.WebControls.ListItemType type)
{
templateType = type;
}
#region ITemplate 成员 public void InstantiateIn(Control container)
{
PlaceHolder ph = new PlaceHolder(); Label column1 = new Label();
Label column2 = new Label();
Label column3 = new Label();
Label column4 = new Label();
Label column5 = new Label();
Label column6 = new Label();
Label column7 = new Label();
ImageButton imageBtn = new ImageButton();
HiddenField hf = new HiddenField(); //设置ContorlId
column1.ID = "column1";
column2.ID = "column2";
column3.ID = "column3";
column4.ID = "column4";
column5.ID = "column5";
column6.ID = "column6";
column7.ID = "column7";
imageBtn.ID = "imageBtn";
hf.ID = "hf"; //创建RepeaterItems
switch (templateType)
{
case ListItemType.Header:
ph.Controls.Add(new LiteralControl("<table border=\"1\" width=\"100%\" class=\"grd\">"));
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_title\">Task Name<br />任务名称"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">BBAC CN No<br />更改通知书号"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Initiator<br />发起人"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Department Name<br />所在部门"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">AeJ<br />年度型"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Date<br />日期"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">Status<br />状态"));
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_title\">View<br />查看"));
ph.Controls.Add(new LiteralControl("</td></tr>"));
break;
case ListItemType.Item:
ph.Controls.Add(new LiteralControl("<tr><td class=\"grid_body center\">"));
ph.Controls.Add(column1);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column2);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column3);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column4);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column5);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column6);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\">"));
ph.Controls.Add(column7);
ph.Controls.Add(new LiteralControl("</td><td class=\"grid_body center\" align=\"center\" width=\"45\">"));
ph.Controls.Add(imageBtn);
ph.Controls.Add(hf);
ph.Controls.Add(new LiteralControl("</td></tr>"));
ph.DataBinding += new EventHandler(Item_DataBinding);
break;
case ListItemType.AlternatingItem:
break;
case ListItemType.Footer:
ph.Controls.Add(new LiteralControl("</table>"));
break;
} //添加到Container中
container.Controls.Add(ph);
} #endregion static void Item_DataBinding(object sender, System.EventArgs e)
{
PlaceHolder ph = (PlaceHolder)sender;
RepeaterItem ri = (RepeaterItem)ph.NamingContainer; //Eval
((Label)ph.FindControl("item1")).Text = (string)DataBinder.Eval(ri.DataItem, "Index"); object task = DataBinder.Eval(ri.DataItem, "TaskName");
((Label)ph.FindControl("item2")).Text = (string)DataBinder.Eval(ri.DataItem, GetTask(task)); ((Label)ph.FindControl("item3")).Text = (string)DataBinder.Eval(ri.DataItem, "CNNo");
((Label)ph.FindControl("item4")).Text = (string)DataBinder.Eval(ri.DataItem, "OriginatorName");
((Label)ph.FindControl("item5")).Text = (string)DataBinder.Eval(ri.DataItem, "DepartmentName");
((Label)ph.FindControl("item6")).Text = (string)DataBinder.Eval(ri.DataItem, "ModelYear"); object obj1 = DataBinder.Eval(ri.DataItem, "Status");
object obj2 = DataBinder.Eval(ri.DataItem, "UserId");
((Label)ph.FindControl("item7")).Text = (string)DataBinder.Eval(ri.DataItem, GetStr(obj1, obj2)); ((HiddenField)ph.FindControl("hf")).Value = (string)DataBinder.Eval(ri.DataItem, "UserId"); ImageButton imgBtn = ((ImageButton)ph.FindControl("imageBtn"));
imgBtn.ImageUrl = "~/Images/btn-view.gif";
imgBtn.CommandArgument = (string)DataBinder.Eval(ri.DataItem, "UserId"); ;
imgBtn.CommandName = "change";
} //处理数据
static string GetTask(object obj)
{
string str = string.Empty;
//
return str;
} //
static string GetStr(object obj1, object obj2)
{
string str = string.Empty;
//
return str;
}
} #endregion
现在唯一的问题是:如何注册动态repeater的ItemCommand事件,在那注册呢?