2012-03-22 9 views
1

私はgridviewを持っています。私のデータベース接続からそのテーブルを埋めるデータテーブルを作成し、データをグリッドにバインドすることでデータを取り込みます。私は自動生成列を使用していませんが、私は自動生成選択を使用しています。だから私はこの提案を見つけました。asp.net 2.0のGridViewカラムを非表示にする

gridview.Columns[index].Visible=false; 

私はこの行を追加したとき、私は私は私のWebアプリケーションでのボタンをクリックしたときにスローされる範囲の例外のうちのインデックスを取得します。

DataTableをGridViewにバインドした後でその行を使用しましたが、別の目的で使用する行を非表示にしたいので、格納されたprocからその情報を保持する必要があります。

また、<columns>オプションを使用して手動で列を追加しようとしましたが、既存の列の上に列を追加するだけです。

私はウェブプログラミングに少し新しく、自動生成選択を取り出すことはオプションですが、テーブルiの選択行機能を再コードするために多くの時間を費やす必要がありますいけない。私が今までに読んだことはすべて、自動生成列の問題を扱っていましたが、私はそれを使用していません。また、selectを自動生成すると同じ問題が発生します。私は選択肢がないかもしれない。

+0

実際にあなたの問題*が何であるかはまだ分かりません。 –

+0

私はそれが私が範囲エラーのインデックスを取得していたことを追加しなかったことについて申し訳ありません。私はそれを反映するために私の質問を変更しました。私は基本的にグリッドビュー内の行を非表示にする必要があります。私のコードのいくつかを投稿しようとします。 –

+0

質問を編集する前に、 'display:none'を使ってクライアントにレンダリングするか、' visible = false'を使ってクライアントにレンダリングする必要がありますか?クライアント側のコントロールにアクセスする必要がありますか?非表示になっている場合でも、サーバーサイドでコントロールとその値にいつでもアクセスできます。また、その行を非表示にしたい場合は、ボタンクリックハンドラを表示する必要があります。 –

答えて

1

行を非表示にするには、OnRowDataBoundイベントにバインドしてスタイルを設定する必要があります。

は、この答えをチェックアウト:私はAutoGenerateColumnsがtrueに設定されているデフォルトであったことを実現しなかった、この特定の問題についてはHide a gridView row in asp.net

0

を。それがデフォルトであるかどうか、または私がAutogenerateSelectコントロールを使用しているかどうかはわかりませんが、私の修正は、AutogenerateColumnsをFalseに明示的に設定し、グリッドをコントロールのcolumns要素から取り込むことでした。あなたの返信のためにmelloに感謝しました。私は必要な答えに私をつかまえました。

関連する問題