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>

新:这个问题是由于我在这里使用 Telerik 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:inline 而不是 display :堵塞。所以,总结一下:

您可以使用以下 CSS 来获得所需的视图:

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

非常感谢你的代码。效果很好。Telerik Ajaxmanager 就是问题所在。

protected void ajaxManager_AjaxSettingCreating(object sender, Telerik.Web.UI.AjaxSettingCreatingEventArgs e)
{
    e.UpdatePanel.RenderMode = UpdatePanelRenderMode.Inline;
}
于 2009-07-11T16:56:51.133 回答
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 回答