2012-12-05 12 views
8

Ich programmiere programmgesteuert Kontrollkästchen zu einem ASP.NET-Webformular. Ich möchte die Request.Form.Keys durchlaufen und den Wert der Checkboxen erhalten. ASP.NET Checkboxen haben kein Wertattribut.Wertattribut zu ASP.NET hinzufügen Kontrollkästchen

Wie setze ich das value-Attribut so, dass wenn ich die Request.Form.Keys iteriere ich einen aussagekräftigeren Wert als die Standardeinstellung "ein".

-Code für das Hinzufügen des Kontrollkästchen zur Seite:

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

-Code für Checkbox Werte von Request.Form Abrufen:

StringBuilder settingsValue = new StringBuilder(); 

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

Antwort

16

InputAttributes.Add()!

folgender Grund nicht funktioniert, weil „das CheckBox-Steuerelement nicht den Wert machen zugeschrieben (es tatsächlich entfernt das Attribut während der Veranstaltung Phase machen [)].“:

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

Die Lösung:

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

Dank Dave Parslow Blog-Post: Assigning a value to an ASP.Net CheckBox

Verwandte Themen