0

ユーザー入力に基づいて SQL クエリを作成するプログラミング中の Web アプリケーションがあります。現在、問題なくいくつかのチェックボックスを使用しています。Page_Loadただし、チェック ボックスをハードコーディングする代わりに、次のコードを使用して動的に設定しました。

protected void Page_Load(object sender, EventArgs e)
{
    //init();
    sql.Open();

    if (!Page.IsPostBack)
    {

        SqlCommand cmd = new SqlCommand("SELECT DISTINCT [value] FROM [table]", sql);
        SqlDataReader rdr = cmd.ExecuteReader();
        while (rdr.Read())
            chkLst.Items.Add(rdr[0].ToString());
        rdr.Close();
    }
    sql.Close();
}

移入は完全に機能します。ただし、chkLst.Items.Selectedプロパティを取得しようとすると、常に false に設定されるため、リストがフィルタリングに使用できなくなります。以下は、送信時に実行されるコードの関連セグメントです。

foreach (ListItem li in chkLst.Items)
    if (li.Selected)
        cmd += li.Text;

Selected プロパティは常に false であるため、コマンドは常に空になります。これを修正するにはどうすればよいですか?

4

1 に答える 1

0

他の誰かが私の質問に答えましたが、彼の答えは、彼または今日の SO の読み取り専用期間によって削除されたようです。

解決策は、Page_Load ではなく Page_Init にリストを入力することでした。

匿名の回答者に感謝します。

于 2013-01-30T00:28:40.020 に答える