2012-12-05 2 views
8

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

Value.Form.Keysを反復処理するときに、デフォルトの「オン」よりも意味のある値が得られるように、値属性を設定する方法を教えてください。ページにチェックボックスを追加するための

コード:

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]); 
    } 
} 

答えて

16

InputAttributes.Add()!

「CheckBoxコントロールが帰属値を描画しません(それは実際には、renderイベントフェーズで属性を削除し、[)]。」ので、以下は動作しません:

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

ソリューション:

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

Dave Parslowさんのブログ記事のおかげで:Assigning a value to an ASP.Net CheckBox

関連する問題