Asp.net 如何右对齐一个Gridview列的标题
有人知道如何右对齐gridview中一列的标题吗。一直在搜索web,但仍然找不到解决方案 HorizontalAlign='Right'适用于数据,但不适用于标题。我不想右对齐所有列,只想右对齐一列 下面是代码的摘录:Asp.net 如何右对齐一个Gridview列的标题,asp.net,gridview,header,right-align,Asp.net,Gridview,Header,Right Align,有人知道如何右对齐gridview中一列的标题吗。一直在搜索web,但仍然找不到解决方案 HorizontalAlign='Right'适用于数据,但不适用于标题。我不想右对齐所有列,只想右对齐一列 下面是代码的摘录: <asp:GridView ID="gvCustomer" AutoGenerateColumns="False" runat="server"> <Columns> <asp:BoundField DataField="Cu
<asp:GridView ID="gvCustomer" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:BoundField DataField="CustomerId" HeaderText="Customer Id" />
(other fields here)
<asp:TemplateField HeaderText="Contact Name" HeaderStyle-HorizontalAlign="Right" >
<ItemTemplate>
<asp:Label runat="server" ID="lblContactName" Text='<%# Eval("ContactName") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
<HeaderStyle HorizontalAlign="Right" />
</asp:TemplateField>
</Columns>
</asp:GridView>
(此处为其他字段)
感谢您的帮助。谢谢
Niki1您可以在控件GridView上定义
<HeaderStyle HorizontalAlign="Right" />
注意:从项目中删除您的标记。他一定在你的GridView控制下
所以
.....
2或您可以在项目上定义
<asp:TemplateField HeaderStyle-HorizontalAlign="Right">
注意:使用此解决方案删除
(必须在GridView中,而不是项目中)在我看到的中,已使用以下方法为特定列设置了列标题对齐方式:
<asp:BoundField DataField="CustomerId" HeaderStyle-HorizontalAlign="Right" />
被拉伸到列的整个宽度,因此对齐方式无关紧要
例如,如果单元格标题包含文本align:left的标题,且该标题的宽度为其容器的100%,则容器的水平对齐不会影响该标题:
作为实验,请尝试将HeaderStyle Width属性设置为较小的值,然后查看这是否会影响对齐:
<HeaderStyle HorizontalAlign="Right" Width="50px" />
您可能需要收缩包装标题的容器以适应列标题文本,以便标题的水平对齐生效。嗯,水平对齐对我来说很好
我只是做了一个快速测试。注意:第二列在字段标记中使用Headerstyle HorizontalAlign,而第三列使用带有HorizontalAlign的单独Headerstyle标记。两者都很好
<asp:GridView ID="gvThings" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="text" HeaderText="Text" ItemStyle-Width="200" />
<asp:BoundField DataField="number1" HeaderText="Number 1" ItemStyle-Width="200" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" />
<asp:TemplateField HeaderText="Number 2" ItemStyle-Width="200" ItemStyle-HorizontalAlign="Right">
<HeaderStyle HorizontalAlign="Right" />
<ItemTemplate>
<asp:Label ID="lblNumber2" runat="server" Text='<%# Eval("number2")%>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我认为你的想法是对的,你只是在一些细节上犯了一个错误。您是否定义了不可重写的主题?试试这个
int i=GridView3.HeaderRow.Cells.Count;
GridView3.HeaderRow.Cells[0].HorizontalAlign = HorizontalAlign.Right;
我知道我的答案已经太迟了,但这对仍在寻找这个问题答案的新手来说是有帮助的
基本上,我们可以使用以下任何选项
<asp:TemplateField HeaderStyle-HorizontalAlign=Right>
或
DOM将创建此项作为Quantity
。由于某些原因,此align=right属性将不起作用,需要分析以了解正确的原因
但您可以通过创建一个类来实现这一点,该类使特定的标题正确对齐,并确保同时为标题设置HorizontalAlign属性
th[align=“right”]
{
文本对齐:右对齐;
}
我们有同样的问题,但我设法克服了
这是我的解决方案:D
<asp:TemplateField>
<HeaderStyle Width="100px"/><ItemStyle Width="100px" />
<HeaderTemplate>
<div style="text-align:right;">Contact Name</div>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblContactName" Text='<%# Eval("ContactName") %>' />
</ItemTemplate>
</asp:TemplateField>
联系人姓名
询问者发布的代码摘录已经包含
。。。必须在GridView中,而不是在模板项中,或者您可以使用,但必须在项目中删除。我需要在单独的列上正确对齐标题,而不是整个GridView。我没有意识到HeaderStyle不应该在模板项中。我按照你的建议删除并改为使用,但标题仍然是左对齐的。看,我认为这也行得通,这让我认为,也许他的列标题模板指定了一个容器,该容器具有自己的文本对齐方式,并且正在拉伸以适应列标题容器,避免列标题对齐。或者他的标题有一堆尾随空格,或者诸如此类的愚蠢行为。在任何情况下,我认为这不是一个“我该怎么做”的问题,而是一些nitnoid细节中的一个bug。标题中没有尾随空格或前导空格。我甚至在gridview rowdatabound中进行了测试:code
protectedvoid gvvgvCustomer_rowdatabound(对象发送方,GridViewRowEventArgs e){if(e.Row.RowType==DataControlRowType.Header){txtest.Text='('+e.Row.Cells[3].Text+');}code
我怀疑css文件正在覆盖设置,所以我把它放在页面表上。gvHeaderRightAlign th{text align:right;}并应用它:但它仍然不起作用。你有主题吗?主题可以设置不可覆盖的内容。如果有,请尝试删除主题,然后看看它是否起作用。如果没有,请尝试(a)看看生成的HTML,看看它到底放了什么,也许这会给你一个线索在您使用的任何浏览器中使用IE的开发工具或等效工具,以查看实际应用的样式以及它们来自何处。您可能有一种更高级的样式,它覆盖了gridview试图设置的样式。为什么您在去年问了9个问题,但您从未接受其中任何一个,并且只接受了这些问题-投了一个答案?很抱歉,我忙于工作。在Boundfield上尝试了HeaderStyle HorizontalAlign=“Right”,在HeaderStyle上尝试了HorizontalAlign=“Right”,但都不起作用。我还根据您的建议添加了宽度,但也不起作用。
<asp:TemplateField HeaderStyle-HorizontalAlign=Right>
<HeaderStyle HorizontalAlign="Right" />
<asp:TemplateField>
<HeaderStyle Width="100px"/><ItemStyle Width="100px" />
<HeaderTemplate>
<div style="text-align:right;">Contact Name</div>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblContactName" Text='<%# Eval("ContactName") %>' />
</ItemTemplate>
</asp:TemplateField>