Repeater里面能否批量生成服务器控件?id ='<%# DataBinder.Eval(Container.DataItem,"ss"这种类型的

qluq1101 2014-02-09 02:31:18
话不多说,先贴代码:


<asp:Repeater ID="repOutSide" runat="server"
onitemdatabound="repOutSide_ItemDataBound" >
<HeaderTemplate>
<table id="rtable" cellpadding="1" cellspacing="1" border = "1" align = "center" style=" width:80%;" >

</HeaderTemplate>


<ItemTemplate>


<tr style="text-align:center; height:30px;" >
<td style=" width:20px;" >



<!--注意这个img控件,当加入runat = “server”的时候,

id ='<%# DataBinder.Eval(Container.DataItem,"PK_SB")%>'

会提示出错,说格式不对-->
<img id ='%# DataBinder.Eval(Container.DataItem,"PK_SB")%>' src="" alt="" />






</td>
<td><%# DataBinder.Eval(Container.DataItem,"P_Content")%></td>

</tr>


</ItemTemplate>



<FooterTemplate>
</table>

</FooterTemplate>
</asp:Repeater>





如上面注释所示,当img控件,当加入runat = “server”的时候,id ='<%# DataBinder.Eval(Container.DataItem,"PK_SB")%>'会提示出错,说格式不对。

我想了想,应该是服务器控件的ID必须是确定的,不能这样生成吧。


我原本想达到的效果是:
1、用Repeater动态生成多个<img>控件,并且该控件的ID是一个系列、有规律的;

2、页面某按钮的事件为后台改变这些<img>的图片路径。

现在的问题是:



Image img = (Image)item.FindControl(“控件ID”);
img.ImageUrl = "图片地址";


这里获取的img 是空的;
把前台的img加上runat属性,发现ID = ‘<%# DataBinder.Eval(Container.DataItem,"PK_SB")%>’又提示这是非法的属性……

总的来说,目的就两个,

1、前台动态生成多个<img>控件,并且该控件的ID是一个系列、有规律的;

2、页面某按钮的事件为后台改变部分<img>的图片路径。


求大神来个帮看看能不能解决我的问题。或者提出个其他的解决思路也好。
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2014-02-09
  • 打赏
  • 举报
回复
引用 6 楼 qluq1101 的回复:
[quote=引用 5 楼 tcmakebest 的回复:] 楼主何不直接放一个 PlaceHolder 容器,那里面想放多少个控件都不成问题。
我要弄一个分页查询一样的列表效果的,除了Repeater,还有更好用的吗?[/quote] Repeater 循环中放 PlaceHolder 不可以吗?
qluq1101 2014-02-09
  • 打赏
  • 举报
回复
引用 5 楼 tcmakebest 的回复:
楼主何不直接放一个 PlaceHolder 容器,那里面想放多少个控件都不成问题。
我要弄一个分页查询一样的列表效果的,除了Repeater,还有更好用的吗?
tcmakebest 2014-02-09
  • 打赏
  • 举报
回复
楼主何不直接放一个 PlaceHolder 容器,那里面想放多少个控件都不成问题。
qluq1101 2014-02-09
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
你可以随便看看范例代码,在Repeater模板栗的一个Image的ID写成 ID=img1 这种简单形式就行了,不用搞什么诡异的玩意儿去玩。 先学学asp.net编程,不要自己发明另外一套asp.net。
好严厉……叫我以后怎么还敢出来问 ID=img1 ,实际上ID一定要加引号的吧? 不过这貌似确实是个思路,ID先不用管了,我加个name什么的属性放原来ID的内容看看 另外3楼引用错了,擦
qluq1101 2014-02-09
  • 打赏
  • 举报
回复
引用 1 楼 qluq1101 的回复:
沉的无影无踪……人工置顶
好严厉……叫我以后怎么还敢出来问 ID=img1 ,实际上ID一定要加引号的吧? 不过这貌似确实是个思路,ID先不用管了,我加个name什么的属性放原来ID的内容看看
  • 打赏
  • 举报
回复
你可以随便看看范例代码,在Repeater模板栗的一个Image的ID写成 ID=img1 这种简单形式就行了,不用搞什么诡异的玩意儿去玩。 先学学asp.net编程,不要自己发明另外一套asp.net。
qluq1101 2014-02-09
  • 打赏
  • 举报
回复
沉的无影无踪……人工置顶

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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