問題:
gridview データバインドの途中にヘッダーを追加したいと考えています。ヘッダーとその正しい位置を含めるように DataTable を更新しました (デバッグ中に確認しましたが、そこにあります)。ヘッダーを含む新しい行では、不要なフィールドの 1 つ (ヘッダーのように不要なため、その情報は必要ありません) に「サブヘッダー」と呼ばれるフラグがあります。
背景情報:
したがって、私のデータテーブル行には、サーバー名とサーバーが属するグループが保持されます。サーバー名がヘッダー テキストである新しい行が挿入されるように、DataTable を更新しました。この新しい行が属するサーバー グループは「Subheader」です。私のデータテーブルには、グリッドビューが表示するものよりも多くの情報が含まれています。visibility=false;
私のグリッドビューには 1 つの列しか必要ありませんが、サーバー グループを保持する列があります。
私が達成したいこと:
したがって、このデータテーブルをグリッドビューにバインドするとき、ヘッダー以外のすべての行を別の場所を指すリンクにする必要があります。ヘッダーであるすべてのデータ行は、そのままにしておきたいです。
コード:
private void CurrentServers_RowCreated(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(e.Row.Cells[1].Text != "Subheader")
{
e.Row.Cells[0].Text = "<a href='/EventViewer.aspx?m=" + e.Row.Cells[0].Text + "&s=&e=Application&r=25'>" + e.Row.Cells[0].Text + "</a>";
}
}
}
質問:
これは機能していません。e.Row.Cells[1].Text != "Subheader"
常に true を返します。デバッグでは、値をチェックしe.Row.Cells[1].Text
、そこのどこかに必要な情報があります。
- これは私が処理すべき正しいイベントですか?
- そのデータにアクセスするにはどうすればよいですか?
e.Row.Cells[1].Text
デバッグ中に必要な値を見つけることができても、必要な結果をe.Row.Cells[1].ToString()
返さないe.Row
- これがどのように機能するかを正確に見つけようとしましたが、答えを見つけることができません。私のGridViewに2つのデータテーブル列の列しかない場合
e.Row.Cells
、グリッドビューが必要とする2つのセルしか持たないか、データテーブルを分割する前にこれが行われます(つまり、データテーブルにあるすべての列があります)