2013-12-26 5 views
0

Я использую приведенный ниже код (Partial Code), чтобы получить распечатку строк сетки. Но последний столбец имеет сумму. Поэтому я хочу выровнять последний столбец как выравнивание по правому краю. Но я получил ошибку.C# Прямая выравнивание столбцов сетки

DataTable dt = (DataTable)ViewState["Datasource"]; 
DataTable newTable = dt.DefaultView.ToTable(false, "FLD_ID", "FLD_CUST_ID", "FLD_CUST_NAME", "FLD_CUST_ADDR", "FLD_AMT"); 

newTable.Columns["FLD_ID"].ColumnName = "PAY.ID"; 
newTable.Columns["FLD_CUST_ID"].ColumnName = "CUST.ID"; 
newTable.Columns["FLD_CUST_NAME"].ColumnName = "CUST.NAME"; 
newTable.Columns["FLD_CUST_ADDR"].ColumnName = "ADDRESS";    
newTable.Columns["FLD_AMT"].ColumnName = "INV.AMOUNT"; 


GridView PrintGrid = new GridView(); 
PrintGrid.DataSource = newTable; 
PrintGrid.DataBind(); 
PrintGrid.AllowPaging = false; 

PrintGrid.Columns[4].ItemStyle.HorizontalAlign = HorizontalAlign.Right; 
//Got Error Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index. 

Пожалуйста, помогите мне решить эту проблему.

+0

См. Мой обновленный вопрос – user3085540

+0

Возможный дубликат [.NET GridView - Вы можете выровнять по вертикали только один столбец?] (Http://stackoverflow.com/questions/5644097/net-gridview-can-you-right-align -just-one-column) –

+0

попытаться указать имя столбца вместо столбцов [4] –

ответ

0

Это решение проблемы.

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; 
} 
0

Align его в RowDataBound случае

protected void GridView_RowDataBound(object o, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
    e.Row.Cells[1].HorizontalAlign = HorizontalAlign.Right; 
    } 
} 
1
PrintGrid.Columns[4].ItemStyle.CssClass="alignright"; 

затем добавить CSS

.alignright{ 
    text-align:right; 
     } 
+0

Получена такая же ошибка – user3085540

+0

, тогда Столбцы [4] не существуют, сделайте это Coloumns [3] и попробуйте –

0

Единственный путь он работал для меня использовал

e.Row.Cell[field_position].Style.Value = "text-align: right". 

Больше ничего не нужно для работы за пределами этого кода. Работает отлично. Другие варианты не вступили в силу даже при совместном использовании.

Смежные вопросы