从asp:Panel捕获单击事件并将其重定向到asp:ListView中的asp:LinkBut​​ton

时间:2018-08-14 09:29:33

标签: javascript c# asp.net webforms

好吧,我有一个asp:ListView,每个项目都包裹在asp:Paneldiv)中。我在OnClick上为asp:Panel事件添加了处理程序,以将点击重定向到asp:LinkButton,这将触发itemCommand事件处理程序。

<asp:ListView runat="server" ID="ddtvMediaLib" RepeatDirection="Horizontal" RepeatLayout="Flow" class="list-group" OnItemCommand="ddtvMediaLib_ItemCommand" OnItemDataBound="ddtvMediaLib_ItemDataBound" OnSelectedIndexChanging="ddtvMediaLib_SelectedIndexChanging">
                            <ItemTemplate>
                                <asp:Panel ID="ddtvMediaLibPanel" CssClass="list-group-item no-arrow" runat="server" Style="padding: 0">    
                                        <asp:Panel runat="server" Id="pnlSelect" CssClass="item-details" onClick="$('btnSelect').Click();">
                                            <asp:LinkButton runat="server" ID="btnSelect" Visible="false" CommandArgument='<%# Eval("Id") %>' CommandName="Select" ></asp:LinkButton>
                                  </asp:Panel>                                        
                                </asp:Panel>
                            </ItemTemplate>
                        </asp:ListView>

我的问题是,当我单击asp:Panel时,它没有为itemCommand运行asp:ListView事件-感谢您提供帮助。 TIA

1 个答案:

答案 0 :(得分:0)

您可以更改代码(将onclick更改为onclientclick)并在隐藏代码中注册脚本。

<asp:Panel runat="server" Id="pnlSelect" CssClass="item-details" onClientClick="$('btnSelect').Click();">
                                            <asp:LinkButton runat="server" ID="btnSelect" Visible="false" CommandArgument='<%# Eval("Id") %>' CommandName="Select" ></asp:LinkButton>
                                  </asp:Panel>