首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对齐TemplateField的标题文本?

如何对齐TemplateField的标题文本?
EN

Stack Overflow用户
提问于 2017-11-04 15:33:44
回答 6查看 5.8K关注 0票数 9

我有一个GridViewTemplateFields。

我尝试过HeaderStyle-HorizontalAlign="Center"将TemplateField的头文本对齐到中心,但它不起作用。

代码语言:javascript
复制
<asp:TemplateField HeaderText="Events" HeaderStyle-HorizontalAlign="Center" 
    ItemStyle-HorizontalAlign="Center">
</asp:TemplateField>

如何对齐TemplateField的标题文本?

ItemStyle-HorizontalAlign="Center"对齐中心时,TemplateField的项目工作正常。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-11-07 11:14:41

<center>标记在HTML4.01中不受欢迎,在HTML5中不受支持--您发布的working code可以被“CSS”化,如下所示:

代码语言:javascript
复制
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <HeaderTemplate>
        <asp:Panel style="margin-left: auto; margin-right: auto; text-align: center;">
            Events
        <asp:Panel>
    </HeaderTemplate>
<asp:TemplateField>

(注:Panel

这里有一个小小的改进,就是为样式定义一个CSS类,以便它可以在其他地方重用:

代码语言:javascript
复制
.center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

...and从面板引用它,而不是使用内联样式:

代码语言:javascript
复制
<asp:Panel CssClass="center">
票数 7
EN

Stack Overflow用户

发布于 2017-11-07 08:13:33

右边,temStyle-HorizontalAlign="Center“应该可以工作。请注意,您的网格视图样式是从父样式表继承的。意思是,您的网格视图至少有一个父样式,而不是certer对齐。这应该是你的问题所在。

票数 3
EN

Stack Overflow用户

发布于 2017-11-06 16:31:42

我刚刚创建了一个新的WebForms解决方案,并删除了引导,以确保没有任何css样式干扰我的代码。这就是我为重现你的问题所做的。

aspx:

代码语言:javascript
复制
<asp:GridView runat="server" ID="grid" Style="width: 500px;">
    <Columns>
        <asp:TemplateField HeaderText="FirstName - TemplateField">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>

</asp:GridView>

如您所见,我已经定义了一个TemplateField,而没有任何其他的css样式。

CodeBehind:

代码语言:javascript
复制
public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        grid.DataSource = GetPersons();
        grid.DataBind();
    }

    public IEnumerable<Person> GetPersons()
    {
        for(int i = 0; i< 10; i++)
        {
            yield return new Person { FirstName = $"John{i}", LastName = "Doe", Age = i };
        }
    }
}

我只是返回10个虚拟项目来创建一个演示网格。没什么不寻常的。

这是Chrome和的结果:

正如您所看到的,在默认情况下,标头是居中的。这是针对-BoundFields和TemaplateFields的。

如果不是这样,我建议检查是否有其他样式表干扰您的样式。我知道引导3默认为text-align: center用于th元素(因为我刚刚检查了)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47112356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档