2015-06-08 41 views
0

如何在Dynamic Gridview中設置列寬?當的AutoGenerateColumns = 「真」如何在動態網格視圖中設置列寬?

+0

添加一些代碼..? –

+1

@Ameer:你有沒有嘗試過[某事從這裏](http://www.dotnetgallery.com/kb/resource69-Set-Gridview-column-width-dynamically-using-C.aspx) – BNN

+0

感謝Nadeem它的工作:) –

回答

0

你需要做這樣的

protected void gvData_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 
    if (e.Row.RowType == DataControlRowType.DataRow) { 
     e.Row.Cells(0).Width = new Unit("200px"); 
     e.Row.Cells(1).Width = new Unit("500px"); 
    } 
    } 

您的標記

<asp:GridView id="gvData" runat="server"     
       OnRowDataBound="gvData_RowDataBound"> 
</asp:GridView> 

默認情況下autogeneratecolumn變化的GridView的RowDataBound事件是假的所以沒有必要指定autogeneratecolumn = 「true」

+0

上面這兩個解決方案不工作在我的情況:(默認情況下 –

0

您可以有如下serverside方法:

private void GV_RowDataBound(object o, GridViewRowEventArgs e) 
{   
    // apply custom formatting to data cells 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // set formatting for the category cell 
     TableCell cell = e.Row.Cells[0]; 
     cell.Width = new Unit("120px"); 
     cell.Style["border-right"] = "2px solid #666666"; 

     // set formatting for value cells 
     for(int i=1; i<e.Row.Cells.Count; i++) 
     { 
      cell = e.Row.Cells[i]; 
      // right-align each of the column cells after the first 
      // and set the width 
      cell.HorizontalAlign = HorizontalAlign.Right; 
      cell.Width = new Unit("90px"); 
      // alternate background colors 
      if (i % 2 == 1) 
        cell.BackColor 
         = System.Drawing.ColorTranslator.FromHtml("#EFEFEF"); 
        // check value columns for a high enough value 
        // (value >= 8000) and apply special highlighting 
      }      
     } 

     // apply custom formatting to the header cells 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      foreach (TableCell cell in e.Row.Cells) 
      { 
       cell.Style["border-bottom"] = "2px solid #666666"; 
       cell.BackColor=System.Drawing.Color.LightGray; 
      } 
     } 

    } 
} 

aspx

<asp:GridView id="myList" runat="server" 
        AutoGenerateColumns="true" 
        OnRowDataBound="GV_RowDataBound" 
        . . . 
        > 
</asp:GridView> 

有關詳細信息,您可以檢查here

+0

AutoGenerateColumns是「true」。所以沒有提及 – Alex

+0

我同意,但我認爲你需要檢查你的答案,因爲你已經提到_By默認autogeneratecolumn是** false **所以不需要指定autogeneratecolumn =「true」_ :) –

相關問題