2012-06-13 40 views
18

実行時にGridView列を名前で表示/非表示することはできますか?実行時に名前でGridView列をASP.Netで非表示にする

gridReviews.Columns[4].Visible = false; 

を私は次の操作を実行したいのですが:私は次のようにインデックスを経由してそれを行うことができます

gridReviews.Columns["Name"].Visible = false; 

これを行うための最善の方法は何ですか?あなたはGridViewのを結合するために使用し、GridViewの列が同じ順序であるデータにアクセスできる場合は、間接的に列名によってGridViewコントロールにアクセスすることができます

foreach (DataControlField col in gridReviews.Columns) 
     { 
      if (col.HeaderText == "Name") 
      { 
       col.Visible = false; 
      } 
     } 
+0

データソースとして、ヘッダーテキストまたは列/プロパティ名を使用しますか?いいえ、データテーブル(およびAutoGenerateColumns = false)として使用します。 – David

+0

あなたは私を止めるかもしれない良い点を挙げています。ヘッダーテキストはグリッドデータに応じて変わるため、私はそれを使用できません。しかし、私が非表示にする必要がある列は、データソースにバインドされていないIDを持つように見えるTemplateFieldです。 – Sun

答えて

17

あなたはそれのために、次のコードを使用することができます

//Make ID column invisible by column name 
gv.Columns[dt.Columns[ID].Ordinal].Visible = false; 
関連する問題