【发布时间】:2009-01-27 21:46:47
【问题描述】:
我在 AJAX Accordion 中有一个 FileUpload 控制器和按钮,但我无法正常工作。问题是 FileUpload Controller 需要完整的回发才能工作。但是,由于控件位于更新面板内,asp 决定进行部分回发。通常,您只需将 ControlId 放入更新面板上的触发器中。但是,由于手风琴使用不同的命名空间,您无法(至少直接)执行此操作。
你建议我如何解决这个问题?
【问题讨论】:
我在 AJAX Accordion 中有一个 FileUpload 控制器和按钮,但我无法正常工作。问题是 FileUpload Controller 需要完整的回发才能工作。但是,由于控件位于更新面板内,asp 决定进行部分回发。通常,您只需将 ControlId 放入更新面板上的触发器中。但是,由于手风琴使用不同的命名空间,您无法(至少直接)执行此操作。
你建议我如何解决这个问题?
【问题讨论】:
您可以在更新面板上将 ChildrenAsTriggers 属性设置为 false,同时 UpdateMode 是有条件的。然后对面板的任何更新都需要明确编码。从未尝试过,但它可能会起作用。
【讨论】:
只要折叠面板都有自己的更新面板,您就可以将控件 ID 放入回发触发器中。
<ajaxToolkit:AccordionPane
HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected"
ContentCssClass="accordionContent">
<Header><asp:LinkButton ID="lbtnOption1" runat="server">Option 1</asp:LinkButton></Header>
<Content>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
/* Put HtmlInputFile and upload button here*/
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnUpload" />
</Triggers></asp:UpdatePanel>
</Content>
</ajaxToolkit:AccordionPane>
【讨论】: