.NET GridView - 你能正确对齐一列吗?

Axi*_*ili 12 c# asp.net gridview

你能轻松地在GridView中右对齐一列吗?

我有这个

<asp:GridView ID="GridView1" runat="server"></asp:GridView>
Run Code Online (Sandbox Code Playgroud)

它绑定到具有许多列的DataTable(动态生成).我只想让"价格"栏右对齐.

(遇到这个问题,我想知道我是否应该打印HTML <table>而不是使用GridView.使用HTML我会完全控制.)

rsb*_*rro 21

是的,你可以,但我认为如果你AutoGenerateColumns设置为true(默认情况下是这样),那么你需要使用RowDataBound事件右对齐列.作为旁注,如果它更容易设置AutoGenerateColumns为false并使用BoundFields,它将为您提供更多格式化选项,并可能消除对RowDataBound事件的需要.

网格视图:

<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" runat="server"></asp:GridView>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

protected void GridView1_RowDataBound(object o, GridViewRowEventArgs e)
{
    //Assumes the Price column is at index 4
    if(e.Row.RowType == DataControlRowType.DataRow)
        e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Right;
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


Iri*_*ain 13

<Columns>
...
    <asp:BoundField DataField="Price" HeaderText="Price" 
        ItemStyle-HorizontalAlign="Right" ItemStyle-Width="80" />
...
</Columns>
Run Code Online (Sandbox Code Playgroud)

  • 要使用此方法,您需要将AutoGenerateColumns设置为false并手动添加标记中的所有列.缺点是很多打字.好处是你可以更好地控制格式,而不必诉诸代码.我个人认为使用BoundFields是一种更好的方法. (2认同)