检查Page_Load在ResultsRepeater上单击了哪个项目

时间:2011-04-18 09:55:41

标签: c# asp.net event-handling repeater

我知道这是一个非常奇怪的问题,但我需要知道在转发器上点击事件触发之前点击了哪个项目。

这会告诉我正在回复的是转发器,但没有点击哪个项目:

Request.Params["__EVENTTARGET"].ToString()

如何找出点击的转发器项目? 如果有帮助,这里是转发器的标记。

<asp:Repeater ID="ResultsRepeater" runat="server">
    <HeaderTemplate>
        <table cellpadding="3" cellspacing="0" width="360">
            <tr bgcolor="#d5d5e6">
                <th width="10">
                    &nbsp;
                </th>
                <th>
                    Content Type
                </th>
                <th>
                    Items Found
                </th>
                <th>
                    Results
                </th>
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr bgcolor="#efefef">
            <td width="10">
                <img src="http://www.exactmobile.co.za/images/li_x.gif">
            </td>
            <td>
                <%# DataBinder.Eval(Container, "DataItem.Name") %>
            </td>
            <td align="center">
                <b class="brown">
                    <%# DataBinder.Eval(Container, "DataItem.Count") %></b>
            </td>
            <td align="center">
                <asp:LinkButton runat="server" CommandName="Results">Show <font class="red">»</font></asp:LinkButton>
            </td>
        </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
        <tr bgcolor="#ffffff">
            <td width="10">
                <img src="http://www.exactmobile.co.za/images/li_x.gif">
            </td>
            <td>
                <%# DataBinder.Eval(Container, "DataItem.Name") %>
            </td>
            <td align="center">
                <b class="brown">
                    <%# DataBinder.Eval(Container, "DataItem.Count") %></b>
            </td>
            <td align="center">
                <asp:LinkButton runat="server" CommandName="Results">Show <font class="red">»</font></asp:LinkButton>
            </td>
        </tr>
    </AlternatingItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

2 个答案:

答案 0 :(得分:0)

您是否尝试为每个链接按钮控件设置事件处理程序?如果没有,那么这样做可能会自动将您带到各自的事件处理程序。

另请参阅这有助于ASP.NET - Add Event Handler to LinkButton inside of Repeater in a RenderContent call

答案 1 :(得分:0)

通过在模板中使用普通锚点并将其href设置为控件Pre_Render方法中的实际页面来解决此问题。