Tôi vừa tạo giải pháp WebForms mới và xóa bootstrap chỉ để đảm bảo rằng không có kiểu css nào can thiệp vào mã của tôi. Đây là những gì tôi đã làm để tái tạo vấn đề của bạn.
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>
Như bạn thấy đấy, tôi đã xác định một TemplateField mà không cần bất kỳ phong cách css bổ sung.
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 };
}
}
}
Tôi chỉ trở về 10 mặt hàng giả để tạo ra một mạng lưới demo. Không có gì khác thường.
Đây là kết quả trong Chrome và Internet Explorer:
Như bạn có thể thấy, các tiêu đề được tập trung theo mặc định. Và điều này là cho cả hai -BoundFields và TemaplateFields.
Nếu đây không phải là trường hợp của bạn, tôi khuyên bạn nên kiểm tra xem có bất kỳ bảng định kiểu nào khác đang can thiệp vào kiểu của bạn hay không. Tôi biết rằng bootstrap 3 mặc định là text-align: center
cho th
yếu tố (Bởi vì tôi chỉ cần kiểm tra)
câu hỏi của tôi là 'HeaderStyle-HorizontalAlign' không hoạt động. cảm ơn bạn đã trả lời. – AsifAli72090
Tôi đã viết, rất có thể một kiểu khác sẽ ghi đè nó. – Marco
Tôi đã giải quyết được vấn đề nhờ câu trả lời của bạn! – AsifAli72090