Вопрос о панели обновления AJAX - PullRequest
0 голосов
/ 21 июля 2011

Вот проблема, которая у меня есть. У меня есть 5 кнопок на моей форме, которые появляются рядом друг с другом (по горизонтали). 3 из 5 кнопок должны были быть помещены в панель обновления, поскольку эти кнопки должны выполнять AsyncPostBack, остальные 2 кнопки должны быть снаружи, чтобы выполнить обратную передачу. Все работает так, как мне хотелось бы признать, что все кнопки не отображаются на одной строке. Могу ли я что-нибудь сделать, чтобы эти 5 кнопок отображались в одной строке, учитывая различную функциональность этих кнопок?

Ответы [ 2 ]

1 голос
/ 21 июля 2011

UpdatePanel отображает <div>, вам нужно стилизовать этот div так, чтобы он отображал inline Обратите внимание на Style="display:inline" в следующем коде. Есть другие способы сделать это в зависимости от вашего макета, но это самый простой способ.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" Style="display:inline">
    <ContentTemplate>
        <asp:Label ID="labelText" runat="server" Text="Label" />
        <asp:Button ID="Button1" runat="server" Text="Button1" />
        <asp:Button ID="Button2" runat="server" Text="Button2" />
        <asp:Button ID="Button3" runat="server" Text="Button3" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button4" runat="server" Text="Button4" />
<asp:Button ID="Button5" runat="server" Text="Button5" />
0 голосов
/ 21 июля 2011

Вам не нужно, чтобы ваши кнопки находились внутри панели обновления, чтобы эта работа работала. Вам просто нужно определить их как AsyncPostBackTriggers. Тогда вам не нужно беспокоиться о нарушении макета.

<div class="toolbar">
    <asp:Button ID="Button1" runat="server" Text="Button1" />
    <asp:Button ID="Button2" runat="server" Text="Button2" />
    <asp:Button ID="Button3" runat="server" Text="Button3" />
</div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label ID="labelText" runat="server" Text="Label" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>
...