私はここで時間を過ごしています。クラス ファイルがあり、その中の Web ページからコントロールを参照する必要があります。Web でいくつかの例を見つけましたが、何かが正しく機能していません。関連するC#は次のとおりです。
Page page = (Page)HttpContext.Current.Handler;
DropDownList ddl = (DropDownList)page.FindControl("ddlCrimeType");
ddl.DataSource = read; // read is a SqlDataReader.
ddl.DataBind();
私がやろうとしているDropDownList
のは、クラスファイルでこれにいくつかのデータをバインドすることです。問題は、そこの 3 行目で、古いものを取得することです。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
の を返すとFieldCount
、SqlDataReader
適切な数のフィールドが得られるので、データがあると思います。私はコントロールを見つけていないだけだと思います。ddlCrimeType
クラスファイルでコントロールを見つけるにはどうすればよいですか?
他に知っておくべきことがあれば教えてください。
アップデート:
コントロールはコンテンツ ページにあります。同じことをするためにページの分離コードに同様のコードを書いたとき、私はこれをしなければなりませんでした:
DropDownList ddl = (DropDownList)Master.FindControl("ContentPlaceHolder1").FindControl("ddlCrimeType");
クラスファイルでそれを行う方法を理解する必要があります。今、私は言われています:
The name 'Master' does not exist in the current context.