问题描述
话不多说,先贴代码:<asp:RepeaterID="repOutSide"runat="server"onitemdatabound="repOutSide_ItemDataBound"><HeaderTemplate><tableid="rtable"cellpadding="1"cellspacing="1"border="1"align="center"style="width:80%;"></HeaderTemplate><ItemTemplate><trstyle="text-align:center;height:30px;"><tdstyle="width:20px;"><!--注意这个img控件,当加入runat=“server”的时候,id='<%#DataBinder.Eval(Container.DataItem,"PK_SB")%>'会提示出错,说格式不对--><imgid='%#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>的图片路径。现在的问题是:Imageimg=(Image)item.FindControl(“控件ID”);img.ImageUrl="图片地址";
这里获取的img是空的;把前台的img加上runat属性,发现ID=‘<%#DataBinder.Eval(Container.DataItem,"PK_SB")%>’又提示这是非法的属性……总的来说,目的就两个,1、前台动态生成多个<img>控件,并且该控件的ID是一个系列、有规律的;2、页面某按钮的事件为后台改变部分<img>的图片路径。求大神来个帮看看能不能解决我的问题。或者提出个其他的解决思路也好。
解决方案
解决方案二:
沉的无影无踪……人工置顶
解决方案三:
你可以随便看看范例代码,在Repeater模板栗的一个Image的ID写成ID=img1这种简单形式就行了,不用搞什么诡异的玩意儿去玩。先学学asp.net编程,不要自己发明另外一套asp.net。
解决方案四:
引用1楼qluq1101的回复:
沉的无影无踪……人工置顶
好严厉……叫我以后怎么还敢出来问ID=img1,实际上ID一定要加引号的吧?不过这貌似确实是个思路,ID先不用管了,我加个name什么的属性放原来ID的内容看看
解决方案五:
引用2楼sp1234的回复:
你可以随便看看范例代码,在Repeater模板栗的一个Image的ID写成ID=img1这种简单形式就行了,不用搞什么诡异的玩意儿去玩。先学学asp.net编程,不要自己发明另外一套asp.net。
好严厉……叫我以后怎么还敢出来问ID=img1,实际上ID一定要加引号的吧?不过这貌似确实是个思路,ID先不用管了,我加个name什么的属性放原来ID的内容看看另外3楼引用错了,擦
解决方案六:
楼主何不直接放一个PlaceHolder容器,那里面想放多少个控件都不成问题。
解决方案七:
引用5楼tcmakebest的回复:
楼主何不直接放一个PlaceHolder容器,那里面想放多少个控件都不成问题。
我要弄一个分页查询一样的列表效果的,除了Repeater,还有更好用的吗?
解决方案八:
引用6楼qluq1101的回复:
Quote: 引用5楼tcmakebest的回复:
楼主何不直接放一个PlaceHolder容器,那里面想放多少个控件都不成问题。我要弄一个分页查询一样的列表效果的,除了Repeater,还有更好用的吗?
Repeater循环中放PlaceHolder不可以吗?