在中继器中找不到链接按钮
本文关键字:链接 按钮 找不到 中继器 | 更新日期: 2023-09-27 18:06:01
我在中继器中有一个链接按钮,有几个绑定字段。我试图到达我可以在数据绑定后设置按钮onClientClick的地方,但每次我试图访问链接按钮时,我一直得到Null返回。
我已经看了这里涉及中继器和对照器的每一个问题,但还没能弄清楚。
是
<asp:Repeater ID="DailyRepeater" OnItemCommand="DailyRepeater_ItemCommand" runat="server">
<HeaderTemplate>
<tr>
<td class="coltitle">
Time
</td>
<td class="coltitle">
Activity
</td>
<td class="coltitle">
Hours
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="evenrow">
<td>
<%# Eval("StartTime","{0:HH:mm}") %>-<%# Eval("EndTime","{0:HH:mm}") %>
</td>
<td>
<%# Eval("Description") %>
</td>
<td>
<%# Eval("Hours","{0:0.0}") %>
</td>
<td>
<asp:LinkButton runat="server" CausesValidation="false" ID="editbutton" Text="Edit">Edit</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
.aspx.cs
protected void DailyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton myButton = (LinkButton)e.Item.FindControl("editbutton");
myButton.OnClientClick = (popupWindow.GetTargetPopupCode("URL");
}
根据我所读到的,我应该能够使用RepeaterItemEventargs到达按钮。但是我似乎在这里找不到。我想到的另一件事是,绑定没有发生的时候,这发生了(这是没有意义的,因为这是一个数据绑定事件),但由于某种原因,e回来了。item有一个null的dataItem和一个-1的itemIndex…
我只是真的很困惑,失去了任何帮助,我将不胜感激。
谢谢!
听起来您没有防范项目类型。通常,它会触发页眉、所有项,然后是页脚。您需要这样做:
if(e.Item.ItemType == ItemType.Item || e.Item.ItemType == ItemType.AlternatingItem)
{
LinkButton myButton = (LinkButton)e.Item.FindControl("editbutton");
myButton.OnClientClick = (popupWindow.GetTargetPopupCode("URL");
}
为什么不在sender
对象上设置属性呢?
sender.OnClientClick = //whatever//