Проверьте Page_Load, какой элемент был нажат в ResultsRepeater - PullRequest
0 голосов
/ 18 апреля 2011

Я знаю, что это довольно странный вопрос, но мне нужно знать, по какому элементу щелкнули, прежде чем событие повтора срабатывает на повторителе.

Это скажет мне, что это был ретранслятор, который делает сообщение назад, но не какой элемент был нажат:

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 голосов
/ 18 апреля 2011

Чтобы обойти эту проблему, просто используйте обычные привязки в шаблоне и установите их ссылки на фактические страницы в методе управления Pre_Render.

0 голосов
/ 18 апреля 2011

Вы пытались настроить обработчики событий для каждого из ваших элементов управления кнопкой ссылки? Если нет, то это может автоматически привести вас к соответствующему обработчику событий.

Также посмотрите, помогает ли это ASP.NET - добавление обработчика событий в LinkButton внутри Repeater при вызове RenderContent

...