![](/img/trans.png)
[英]How can I find My Cart Total With Repeater in OnItemDataBound (ASP.NET)
[英]How can I put my OnItemDataBound c# code in my code behind and bind it to the asp:repeater
我是asp.net的初学者,这是我第一次遇到asp中继器。 这是我要绑定到C#代码的.ascx页面中的转发器控件
在.ascx页面中:
<asp:Repeater ID="relatedFilesRepeater" runat="server" OnItemDataBound="RelatedFilesRepeater_ItemDataBound">
<ItemTemplate>
<tr>
<td width="30%">
<asp:Label ID="fileNameLabel" runat="server" />
</td>
<td>
<asp:ImageButton ID="signatureButton" runat="server" ImageUrl="~/Images/Icons/16x16/_Base Image/Symbol Check 2.png" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
在.ascx页面的顶部,我已经用C#声明了OnItemDatabound
函数,如下所示:
<script language="C#" runat="server">
void RelatedFilesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
...
}
而且效果很好。 但是将c#代码放在.ascx中并不美观,也不干净,我该如何在代码中放置OnItemDataBound
函数并将其与asp中继器绑定。 因为我试图简单地将c#代码复制粘贴到文件后面的代码中,所以它不起作用。
之所以无法访问标签控件,是因为它位于转发器内部。 因此,为了访问它们,您可以使用FindControl()
var myLabel = (Label)FindControl("YouLabelId");
//Do Some Work
这将适用于<asp:Repeater />
的其余控件
在这里进一步阅读
您不能直接访问这些标签。 原因是它们被包装在转发器中,所以首先您必须找到相应的转发器行,然后使用row.findcontrol并提供ctrl id:
void RelatedFilesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label fileNameLabel= (Label)e.Item.FindControl("fileNameLabel");
ImageButton signatureButton= (ImageButton)e.Item.FindControl("signatureButton");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.