在ASP.NET ListView中RowClick

时间:2013-12-13 13:53:34

标签: javascript jquery asp.net vb.net listview

我有一个ListView,它呈现一个表,如下所示:

    <asp:ListView runat="server" ID="lwPerson">
    <LayoutTemplate>
        <table>
            <tr id="itemPlaceHolder" runat="server"></tr>
            <tr>
                <td><img src="/blabla/blabla.png" alt="New person"/></td>
                <td><strong>New person</strong></td>
                <td><asp:ImageButton runat="server" CommandName="NewPerson" ImageUrl="~/blabla/icon_arrow.png"></asp:ImageButton></td>
            </tr>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr>
            <td><img src='<%# IIf(Not Eval("PlayerPerson.User.SmallProfileThumbnailPath") Is Nothing, Eval("PlayerPerson.User.SmallProfileThumbnailPath"), "/blabla/default_profilepic.png")  %>' alt="Profile picture" /></td>
            <td><%# Eval("PlayerPerson.Name") %></td>
            <td><asp:ImageButton runat="server" CommandName="ExistingPerson" CommandArgument='<%# Eval("PlayerPerson.PersonId") %>' ImageUrl="~/blabla/icon_arrow.png"></asp:ImageButton></td>
        </tr>
    </ItemTemplate>
</asp:ListView>

为此,我想在整个TableRow中添加一个click事件,它应该与ImageButton完全相同。如果我可以解雇ListView的ItemCommand事件,就像我使用按钮一样,这将很容易 - 但我还没有找到直接执行此操作的解决方案。相反,我添加了一个onclick-event(客户端):

<tr onclick="test(this);">

这将触发JavaScript函数:

function test(tr) {
    tr.cells[2].firstElementChild.click();
}

我知道我的表中只有3列,而且我也知道该列中只有一个元素。然后我只是触发按钮的click事件。这有效,但可能不是最漂亮的解决方案。

所以,如果有人能告诉我是否有另一种(更好的)方法来做到这一点,我将不胜感激。另外,我想知道如何'优化'JavaScript函数 - 可能用jQuery编写。

提前谢谢!

0 个答案:

没有答案