代码之家  ›  专栏  ›  技术社区  ›  Daniel Loudon

可单击列表视图行中的嵌套asp:LinkButton

  •  1
  • Daniel Loudon  · 技术社区  · 8 年前

    我有一个列表视图,在自定义用户控件中显示文件和文件夹。用户控件的目的是允许用户在整个应用程序中选择各种用途的文件和文件夹。表示文件夹的每一行都有一个切换按钮,用于展开文件夹并显示所有内容,此文件夹是 <asp:LinkButton> 。由于用户可以选择文件和文件夹,因此每一行都必须可单击,因此该项是 <asp:LinkButton> 触发 ItemCommand 的事件 <asp:ListView> 。我在下面附上了一个代码示例 CssClass 省略了不相关的元素。

    <asp:ListView runat="server" Id="ddtvContentItems" OnItemCommand="ddtvContentItems" OnItemDataBind="ddtvItemDataBind">
       <ItemTemplate>
          <Section>
             <asp:LinkButton Id="ContentArea" CommandName="Select" CommandArguement='<%# Eval("Id") %>'>
                <!-- Some more elements -->
                <div>
                   <asp:LinkButton Id="btnExpandCollapse" CommandName="Toggle" CommandArguement='<%# Eval("Id") %>'></asp:LinkButton>
                </div>
             </asp>LinkButton>
          </Section>
       </ItemTemplate>
    </asp:ListView>
    

    我理解使用 <asp:LinkButton> (呈现为 <a> )在另一个内部 <asp:LinkButton> .我理解锚定标签不应放在锚定标签内。问题是我需要一个替代包含 <asp:LinkButton> 比如 <asp:Panel> (div)不会启动 ItemCommand项目命令 单击事件。

    我尝试过使用面板和 OnClick 在客户端并发回。虽然这是可行的,但这会导致回发并重新渲染。

    function ContentSelect(id) {
    __doPostBack("contentSelected:" + id); 
    }   
    

    编辑:尝试注释中的内容-添加一个不可见按钮,并使用asp:面板作为包含 onClick='$('btnSelect').Click();'

    0 回复  |  直到 8 年前