9

プログラムでASP.NETWebフォームにチェックボックスを追加しています。Request.Form.Keysを繰り返し処理して、チェックボックスの値を取得したいと思います。ASP.NETチェックボックスにはvalue属性がありません。

Request.Form.Keysを反復処理すると、デフォルトの「on」よりも意味のある値が得られるように、value属性を設定するにはどうすればよいですか。

チェックボックスをページに追加するためのコード:

List<string> userApps = GetUserApplications(Context);

Panel pnl = new Panel();

int index = 0;
foreach (BTApplication application in Userapps)
{
    Panel newPanel = new Panel();
    CheckBox newCheckBox = new CheckBox();

    newPanel.CssClass = "filterCheckbox";
    newCheckBox.ID = "appSetting" + index.ToString();
    newCheckBox.Text = application.Name;

    if (userApps.Contains(application.Name))
    {
        newCheckBox.Checked = true;
    }

    newPanel.Controls.Add(newCheckBox);
    pnl.Controls.Add(newPanel);

    index++;
}

Panel appPanel = FindControlRecursive(this.FormViewAddRecordPanel, "applicationSettingsPanel") as Panel;

appPanel.Controls.Add(pnl);

Request.Formからチェックボックス値を取得するためのコード:

StringBuilder settingsValue = new StringBuilder();

foreach (string key in Request.Form.Keys)
{
    if (key.Contains("appSetting"))
    {
        settingsValue.Append(",");
        settingsValue.Append(Request.Form[key]);
    }
}
4

1 に答える 1

17

InputAttributes.Add()!

「CheckBoxコントロールは属性付きの値をレンダリングしません(実際には、レンダリングイベントフェーズ[)]中に属性を削除するため、以下は機能しません。

newCheckBox.Attributes.Add("Value", application.Name);

ソリューション:

newCheckBox.InputAttributes.Add("Value", application.Name);

Dave Parslowのブログ投稿に感謝します:ASP.Netチェックボックスへの値の割り当て

于 2012-12-05T21:52:40.647 に答える