Repeater模版列中如何动态添加checkbox控件?

ydxuqinghua 2003-09-12 08:43:30
将sqldatareader绑定到Repeater,需要在Repeater模版列中动态添加checkbox,其ID根据数据库中的一个ID字段的值,我的代码如下:
<asp:repeater id="abc" Runat="server">
<ItemTemplate>
<tr>

<asp:checkbox id='<%# databinder.eval(container.dataitem,"id")%>'></asp:checkbox></td>
</tr>

</ItemTemplate>
</asp:repeater>
但在运行的过程中报错!
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ydxuqinghua 2003-09-12
  • 打赏
  • 举报
回复
谢谢大家,现在在上班,回家试后给分!
xavier_lee 2003-09-12
  • 打赏
  • 举报
回复
如果:v1.1
<%# DataBinder.Eval(Container, "DataItem.PhoneNumber") %>
xavier_lee 2003-09-12
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="客户名称">
<HeaderStyle Width="75px"></HeaderStyle>
<ItemTemplate>
<asp:Label Runat=server text='<%# DataBinder.Eval(Container.DataItem, "name")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtName" Runat=server Width="75" Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
ydxuqinghua 2003-09-12
  • 打赏
  • 举报
回复
对不起,上面的代码是我打错了,实际有<td>和runat=server的,报错为:
<%# databinder.eval(container.dataitem,"id")%>是无效的表达示
saucer 2003-09-12
  • 打赏
  • 举报
回复
see

Creating Web Server Control Templates Dynamically
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingwebservercontroltemplatesdynamically.asp


or try


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<html>
<head>
<script language="C#" runat="server">

DataTable GetDataTable()
{
DataTable tbl = new DataTable();
tbl.Columns.Add("col1", typeof(string));
tbl.Columns.Add("col2",typeof(int));
Random r = new Random();
for(int i=0; i < 10; i++)
{
DataRow dr = tbl.NewRow();
dr["col1"] = "col" + i.ToString();
dr["col2"] = r.Next();

tbl.Rows.Add(dr);
}

return tbl;
}
void Page_Load(Object Sender, EventArgs e)
{
Repeater1.DataSource = GetDataTable().DefaultView;
Repeater1.DataBind();
}

void Repeater1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{


if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Controls.Add(new LiteralControl("<tr><td>"));
CheckBox cb = new CheckBox();
cb.ID = (string)DataBinder.Eval(e.Item.DataItem,"col1");
e.Item.Controls.Add(cb);
e.Item.Controls.Add(new LiteralControl("</td><td>"));
Label lbl = new Label();
lbl.Text = DataBinder.Eval(e.Item.DataItem,"col2").ToString();
e.Item.Controls.Add(lbl);
e.Item.Controls.Add(new LiteralControl("</td></tr>"));
}
}

</script>

</head>
<body>

<h3>OnItemDataBound Example</h3>

<form runat=server>

<p>
<asp:Repeater id=Repeater1 OnItemDataBound="Repeater1_ItemDataBound" runat="server">
<HeaderTemplate>
<table border=1>
<tr>
<td><b>Col1</b></td>
<td><b>Col2</b></td>
</tr>
</HeaderTemplate>


<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>

<asp:Button id=btn runat=server Text=Submit />
</form>
</body>
</html>
fengliudai 2003-09-12
  • 打赏
  • 举报
回复
报什么错啊
Englishgenius 2003-09-12
  • 打赏
  • 举报
回复
还少一个 <td>
Englishgenius 2003-09-12
  • 打赏
  • 举报
回复
加上 runat=server

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧