4

BoundColumns を持つ GridView があります。最初の 2 列は非表示になっており、それぞれ gridView1.Rows[0].Cells[0].Text と gridView1.Rows[0].Cells[1].Text を使用してアクセスしたいと思いますが、空の文字列が得られます。列が表示に変更されると、値にアクセスできます。他のフォーラムで提案されているように、列幅をゼロに変更しようとしましたが、問題は解決しませんでした。私が間違っている可能性があることについて、誰かが何か指針を持っていますか。

4

3 に答える 3

7

列がコレクションの一部である場合、 GridViewGuy サイトで示されているようにDataKeyNames、プロパティから値を取得する必要があります。GridView.DataKeys[index].value

ただし、それらがDataKeyNamesコレクションの一部でない場合は、次のハックを使用して、値が ViewState で永続化されるようにすることができます (ASP.NET 2+ の非表示フィールドの通常の動作とは対照的です)。

GridView1.DataSource = myDataSource;
// Set the column visibility to true before Databinding

GridView1.Columns[0].Visible = true;
GridView1.Columns[1].Visible = true;
GridView1.DataBind()

// Set the column visibility to false after Databinding
GridView1.Columns[0].Visible = false;
GridView1.Columns[1].Visible = false;
于 2009-03-12T13:08:13.630 に答える
1

これは、ASP.NET での一般的な動作です。Visible = false は、コード ビハインドでのみコントロールを使用できるようにします。

これに最適なのは、その列に次のスタイルを適用することです。

display:'none'
于 2009-03-12T13:10:50.283 に答える
1

非表示にする列に css クラスhiddencolを追加します。CSS にクラスを追加hiddencolすれば準備完了です。

コード ビハインドで引き続き列にアクセスできますが、ページには表示されません。

<asp:BoundField DataField="Site_ID" ItemStyle-CssClass="hiddencol" />

.hiddencol
{
    display: none;
}
于 2011-02-24T22:41:29.853 に答える