我有一个GridView和TemplateFields。
我尝试过HeaderStyle-HorizontalAlign="Center"将TemplateField的头文本对齐到中心,但它不起作用。
<asp:TemplateField HeaderText="Events" HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center">
</asp:TemplateField>如何对齐TemplateField的标题文本?
当ItemStyle-HorizontalAlign="Center"对齐中心时,TemplateField的项目工作正常。
发布于 2017-11-07 11:14:41
<center>标记在HTML4.01中不受欢迎,在HTML5中不受支持--您发布的working code可以被“CSS”化,如下所示:
<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类,以便它可以在其他地方重用:
.center {
margin-left: auto;
margin-right: auto;
text-align: center;
}...and从面板引用它,而不是使用内联样式:
<asp:Panel CssClass="center">发布于 2017-11-07 08:13:33
右边,temStyle-HorizontalAlign="Center“应该可以工作。请注意,您的网格视图样式是从父样式表继承的。意思是,您的网格视图至少有一个父样式,而不是certer对齐。这应该是你的问题所在。
发布于 2017-11-06 16:31:42
我刚刚创建了一个新的WebForms解决方案,并删除了引导,以确保没有任何css样式干扰我的代码。这就是我为重现你的问题所做的。
aspx:
<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:
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元素(因为我刚刚检查了)
https://stackoverflow.com/questions/47112356
复制相似问题