我的aspx页面中有一个转发器控件:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<img src="pic/iconnew.jpg"/>
</td>
<td>
<asp:LinkButton ID="linkbtTitle" runat="server" Text='<%#Eval("title")%>' CommandArgument='<%#Eval("id_notic")%>' OnCommand="linkbtTitle_Click" OnClick="Buttonlink_Click" ></asp:LinkButton>
</td>
<td>
<asp:Label ID="LabelTime" runat="server" Text='<%#Eval("time")%>' CssClass="TimeMessage" ></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
我想通过linkbtTitle
事件为链接按钮Buttonlink_Click
设置所选样式:
<script runat="server">
protected void Buttonlink_Click(object sender, System.EventArgs e)
{
linkbtTitle.ForeColor = System.Drawing.Color.HotPink;
}
</script>
但它有错误,无法解析符号linkbtTitle
,为什么???仅仅因为链接按钮位于Repeater内部,所以我无法通过上面的方式访问它。
如何???,帮助!!!
答案 0 :(得分:2)
转发器是web-dataatabound控件之一,它重复项目。所以通常有多个项目。这就是为什么你不能直接访问它。它位于不同的NamingContainer
,即转发器的RepeaterItem
。
但是,引发事件的控件始终是sender
参数。所以你只需要施展它:
protected void Buttonlink_Click(object sender, System.EventArgs e)
{
LinkButton linkbtTitle = (LinkButton ) sender;
linkbtTitle.ForeColor = System.Drawing.Color.HotPink;
}