1

ページに次の div がありますが、同じ「行」にボタンが十分にあるにもかかわらず、ボタンが入力の下にレンダリングされています。この「同じ行」の問題を強制するにはどうすればよいですか?

<div id="pageHeader" style="text-align: right;">
    <asp:TextBox ID="searchInput" runat="server" CssClass="searchTerm">
    </asp:TextBox>
    <asp:Button ID="searchButton" runat="server" CssClass="btn" Text="Search" onclick="searchButton_Click" />
</div>

NEW: この問題は、ここでテレリック ajax を使用しておりsearchInput、RadAjaxManager の ajax 設定に更新されたコントロールとして含まれていたためです。このコントロールは、デフォルトで更新されたすべてのコントロールをブロック表示された div に「ラップ」します。次のように、このデフォルトをオーバーライドする必要がありました。

protected void ajaxManager_AjaxSettingCreating(object sender, Telerik.Web.UI.AjaxSettingCreatingEventArgs e)
{
    e.UpdatePanel.RenderMode = UpdatePanelRenderMode.Inline;
}
4

3 に答える 3

3

デフォルトでは、入力要素は display:inline でレンダリングされ、行に表示されます:)ただし、あなたの場合、何かがデフォルトの動作を壊しているように見えるため、displayの代わりにdisplay:inlineが必要であることを明示的に指定する必要があります:ブロック。要約すると、次のようになります。

次の CSS を使用して、目的のビューを取得できます。

#pageHeader input
{
   display:inline !important;
}
于 2009-06-13T11:29:32.737 に答える
0

既存の div を (個々のコントロールではなく) RadAjaxManager によって更新される asp:Panel に変更することもできます。

<asp:Panel id="pageHeader" runat="server" CssClass="righty">
    <asp:TextBox ID="searchInput" runat="server" CssClass="searchTerm">
    </asp:TextBox>
    <asp:Button ID="searchButton" runat="server" CssClass="btn" Text="Search" onclick="searchButton_Click" />

これにより、追加のコントロールがポストバックされる可能性があります-したがって、パフォーマンスはわずかに低下します-しかし、読みやすさは多少向上すると思います.

于 2009-10-20T01:30:48.407 に答える