0

私はドロップダウンリストの素晴らしい世界に不慣れであり、これを説明するのは難しいだろうと思いますが、できる限り最善を尽くします。

これが私のデータです:

 **Type**   **ID**  **Status**
  Letter      1         A
  Letter      2         B
  Letter      3         C
  Letter      4         D
  Letter      5         E

クエリ結果から「3」のIDを返し、ドロップダウンリストに「C」が表示されます。私はすでにこの作品を達成しました:)。私の質問は、ドロップダウンリストにステータスを入力するにはどうすればよいですか?DDLに「C」が表示され、矢印をクリックすると、残りのステータス値が表示されます。

これはSQLクエリで実行できることですか?別のメソッドを作成する必要がありますか?誰かが私を正しい方向に向けたり、素晴らしいコードを提供してくれたら!これが私のコードです:

SqlDataAdapter adapter = new SqlDataAdapter("SELECT Status FROM dbo.database WHERE ID = @ID AND Type = 'Letter'", mySqlConnection1);
adapter.SelectCommand.Parameters.Add("@ID", SqlDbType.Char).Value = lblID.Text;
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = Status";
ddlStatus.DataBind();
4

2 に答える 2

1

私はこれがあなたが探しているものだと思います:

SqlDataAdapter adapter = new SqlDataAdapter(
    "SELECT ID, Status FROM dbo.database WHERE Type = 'Letter'", 
    mySqlConnection1);
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = "ID";
ddlStatus.DataBind();

ddlStatus.SelectedValue = lblID.Text;

まず、DropDownListに必要な値を入力し、次にその値が自動的に表示されるようにSelectedValueを設定します。私の理解では、ステータスをユーザーに表示する必要がありますが、実際に選択される値はIDである必要があります。

ViewStateの使用法によっては、DropDownListを1回だけロードし(ページが最初にロードされたとき)、その後でSelectedValueを設定するだけで済みます。(2ページ目のロード時にリストをリロードする必要があります。IsPostBack値を使用して、リロードするかどうかを決定します)。ただし、ページの読み込み時間に数分の1秒が追加されることを除けば、毎回再読み込みしてもほとんど害はありません。

于 2012-10-25T17:30:11.547 に答える
0

あなたが探しているのはSelectedValueだと思います

 ddlStatus.DataSource = test;
 ddlStatus.DataTextField = "Status";
 ddlStatus.DataValueField = "ID";
 ddlStatus.DataBind();

 //Add this line
 string defaultValue = "3";
 ddlStatus.SelectedValue = defaultValue; //C has ID of 3
于 2012-10-25T17:22:39.483 に答える