我有一个看起来像下面的转发器对象
<asp:Repeater id="rptSpecialNotes" runat="server">
<headerTemplate><ol type="A"></HeaderTemplate>
<itemtemplate>
<li>
</li>
<asp:UpdatePanel ID="udpSpecialNotesRepeater" runat="server" UpdateMode="Always">
<ContentTemplate>
<div id="specialNotes" name='<%# Eval("itemId") %>' runat="server">
<asp:imagebutton runat="server" width="20" class="floatLeft" id="specialNotesItem" imageurl='<%# Eval("ImageUrl") %>' commandname="specialNotesImageChange" commandargument='<%# Eval("itemId") %>'></asp:imagebutton>
<span class="subject"><p><%# eval("Subject") %></p></span>
<br /><br />
<p><%# Eval("AgendaNote")%></p>
<br />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="followAlongControl" EventName ="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:Repeater id="specialNotesAttachmentsRepeater" OnItemCommand="specialNotesAttachmentRepeater_ItemCommand" runat="server" datasource='<%# Container.DataItem.Row.GetChildRows("attachmentRelation") %>' >
<itemtemplate>
<br />
<a href='<%# Container.DataItem("attachmentPath") %>'><%# Container.DataItem("attachmentName") %></a>
</itemtemplate>
</asp:Repeater>
</itemtemplate>
<footerTemplate></ol></FooterTemplate>
</asp:Repeater>
我想根据图像按钮的图像更改div“specialNotes”的背景颜色。所以,如果它被检查,div将是灰色的,如果没有,那么我将它留空。
有没有办法在VB代码隐藏中执行此操作?
答案 0 :(得分:1)
在div标签中添加runat="server"
。然后你的代码在后面,你可以使用:
udpSpecialNotesRepeater.FindControl("div")
在您的DataBound事件上。
但是在jQuery中执行它会更容易。您只需获取div $("#specialNotes")
的ID,然后使用.attr
功能更改其背景。
答案 1 :(得分:1)
页面加载后你不必“查找”div,你可以在绑定时执行此操作。我想当你说“如果它被检查”你指的是作为复选框的图像按钮,并且你想根据图像的位置(路径)改变颜色。所以我想在div中这样做:
<div style='<%# doColor(Eval("ImageUrl")) %>'>
Content in the div
</div>
然后在后面的代码中:
Public Function doColor(img As Object) As String
If img.ToString() = "MyPath" Then
Return "background-color:red"
Else
Return "background-color:green"
End If
End Function
如果ImageUrl等于“MyPath”,div的背景将为红色,否则为绿色。
答案 2 :(得分:0)
可以使用:
Control divControl=e.Item.FindControl("divControl");