ドロップダウンをデータセットにバインドする次のメソッドを作成しました。プロジェクトの別のページでこのメソッドを2回呼び出す必要があります。そこで、クラスを作成してその中にメソッドを配置し、オブジェクトを作成してこのメソッドにアクセスしようとしています。そうするのに問題があります...
public void bind()
{
DataSet ds1 = new DataSet();
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
con.Open();
string strQuery = "SELECT CountryName + '(+' + CountryCode + ')' As CountryName,CountryCode from ACountry";
SqlCommand cmd = new SqlCommand(strQuery, con);
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
da.Fill(ds1, "AUser");
ddlCountryCode.DataSource = ds1.Tables["AUser"];
ddlCountryCode.DataTextField = "CountryCode";
//ddlCountryCode.SelectedValue = "India(+91)";
ddlCountryCode.DataBind();
ddlCountryCode.SelectedIndex = ddlCountryCode.Items.IndexOf(ddlCountryCode.Items.FindByText("India(+91)"));
con.Close();
}
この完全なメソッドを新しいクラスで作成すると、そのメソッドで使用されているコントロール(ドロップダウンリスト)が認識されないため、エラーがスローされます。そのため、次の部分のみを含めました。
public void bindddl()
{
DataSet ds1 = new DataSet();
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
con.Open();
string strQuery = "SELECT CountryName + '(+' + CountryCode + ')' As CountryName,CountryCode from ACountry";
SqlCommand cmd = new SqlCommand(strQuery, con);
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
da.Fill(ds1, "AUser");
con.Close();
}
これで、別のフォーム(.aspx)のドロップダウンリストにバインドする必要のあるデータセットが返されます。それ、どうやったら出来るの?
protected void Page_Load(object sender, EventArgs e)
{
Bind objbind = new Bind();
ddlCountryCode.DataSource = objbind.---->?????????;
ddlCountryCode.DataTextField = "CountryCode";
//ddlCountryCode.SelectedValue = "India(+91)";
ddlCountryCode.DataBind();
ddlCountryCode.SelectedIndex = ddlCountryCode.Items.IndexOf(ddlCountryCode.Items.FindByText("India(+91)"));
}
また、他に何ができますか?ここに別のより良いオプションはありますか?