我正在尝试延迟加载手风琴窗格的内容数据源。所以换句话说,当窗格打开时,它将绑定数据源。我找不到可以用来触发if (source == null) LoadMe();
逻辑的事件。
我知道至少有一百个人以前这样做过。任何想法都会有所帮助。TIA
我正在尝试延迟加载手风琴窗格的内容数据源。所以换句话说,当窗格打开时,它将绑定数据源。我找不到可以用来触发if (source == null) LoadMe();
逻辑的事件。
我知道至少有一百个人以前这样做过。任何想法都会有所帮助。TIA
好的,我让它工作了。我对此并不完全满意,但这就是我得到的:
每个标题都有一个链接按钮,我调整其大小以填充整个区域,基本上使该区域可点击:
<ajaxToolkit:AccordionPane ID="acpInReview" runat="server">
<Header>
<asp:LinkButton runat="server" Width="100%" Height="25" CssClass="SectionLinkButtons" CommandName="LoadInReview">In Review</asp:LinkButton>
</Header>
如您所见,它有一个关联的命令。在父手风琴中,我设置了在模板中检测到命令时触发的事件处理程序:
<ajaxToolkit:Accordion runat="server" ID="accMainNav" HeaderCssClass="AccordionSection"
CssClass="AccordionMainNav" ContentCssClass="AccordionContent"
RequireOpenedPane="False" SelectedIndex="-1"
OnItemCommand="accMainNav_OnItemCommand" ClientIDMode="Static">
<Panes>
...
然后在后面的代码中,处理程序读取命令并执行以下操作:
protected void accMainNav_OnItemCommand(object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "LoadAwaitingControllerApproval":
LoadAwaitingControllerApproval();
break;
case "LoadInReview":
LoadInReview();
break;
case "LoadAwaitingFinalization":
LoadAwaitingFinalization();
break;
}
}
我还将整个内容包装在一个更新面板中,以便我可以使用更新进度控件。所以基本上发生的事情是当您单击触发命令的标题时单击链接按钮。该命令被路由到绑定数据源的事件处理程序。因为它在更新面板中,所以它是异步发生的,我使用 updateprogress 控件来显示加载指示器。我可以通过使用覆盖整个区域的 div 支持链接按钮来改进它,然后给该 div 一个导致回发的 onclick 事件。但就目前而言,这是可行的。