0

「テーブルセル」にラベル(Label1と呼ばれる)を挿入し、それがデータリストに挿入されました。

この状況では、たとえば、Page_Load メソッド内で Label1.Text を使用できないのはなぜですか。ただし、データリストの外側にラベルを挿入すると、Label1 への参照は完全に機能します

説明されているように表のセルにラベルが必要であり、コード ビハインド ファイルからそのキャプション (.Text プロパティ) を変更できるようにする必要があるため、これに対する回避策はありますか?手順。こんにちは、よろしくお願いします。

4

2 に答える 2

2

Labelコントロールは行ごとにDataList作成され、IDそれが内部にあるすべてのコンテナによってプレフィックスが付けられます(したがって、Label1とは呼ばれなくなりました)-OnItemCreatedまたはOnItemDataBoundイベントを処理してから、それを見つけてキャストする必要があり、その後Label Label1 = (Label)e.Item.FindControl("Label1")でのみ使用できますアクセスします。

于 2012-06-04T22:02:15.820 に答える
1

コントロールがデータリスト内にある場合、リスト内の項目ごとに繰り返されます。したがって、ASP.NET はどのインスタンスを参照すればよいかわからないため、データリストの外部でコントロールを参照しても意味がありません。また、データがなければ、インスタンスすら存在しません。

ただし、データリスト内のアイテムを指定してラベルにアクセスできます。

DataListItem item = dataList.Items[0]; // or whichever item you want
Label label1 = (Label)item.FindControl("Label1");
于 2012-06-04T21:58:28.800 に答える