1

以下のコードを使用して、複数のドロップダウンリストを作成しています。しかし、以前に選択した値を維持することはできません。以前の値を維持するのを手伝ってください。

私のコードはここにあります:

        for (int i = 1; i <= Count; i++)
        {
            Session["i"] = Count;

            Panel1.Controls.Add(new LiteralControl("<br />"));
            Label lbl = new Label();
            lbl.ID = "lbl" + i;
            lbl.Text = "Head";
            Panel1.Controls.Add(lbl);
            Panel1.Controls.Add(new LiteralControl("&nbsp;&nbsp;&nbsp;&nbsp;"));

            DropDownList ddl = new DropDownList();
            ddl.ID = "ID" + i;
            ddl.DataValueField = "fld_Head";
            ddl.DataTextField = "fld_Head";
            ddl.DataSource = DVS;
            ddl.DataBind();
            Panel1.Controls.Add(ddl);
        }
4

3 に答える 3

3

ここですでに述べたように、Page_Initイベントで動的コントロールの値を初期化する必要があります。

ビューステートで動作するasp.netの内部機能はPage_Loadイベントで値を入力し、動的コントロールがまだ作成されていない場合、その値は無視されるためです。\

一般的な問題=)

于 2012-10-05T12:37:11.847 に答える
0

DropDownListに動的に追加していPanelます。新しく追加されたDropDownListコントロールは、ポストバックでは使用できなくなります。使用できます

HttpContext.Current.Request.Form["ID" + i]

postリクエストから値を取得します。そして、その値を使用して、新しい状態の新しいコントロールを追加できます。

于 2012-10-05T12:36:26.437 に答える
0

動的コントロールの作成をPage_Initに入れると、完全に機能します。

于 2014-10-04T08:33:00.687 に答える