【问题标题】:Add value attribute to ASP.NET Checkbox将值属性添加到 ASP.NET 复选框
【发布时间】:2012-12-06 05:52:40
【问题描述】:

我正在以编程方式将复选框添加到 ASP.NET WebForm。我想遍历 Request.Form.Keys 并获取复选框的值。 ASP.NET 复选框没有值属性。

如何设置 value 属性,以便在遍历 Request.Form.Keys 时获得比默认“on”更有意义的值。

将复选框添加到页面的代码:

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

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    InputAttributes.Add()!

    以下内容不起作用,因为“CheckBox 控件不呈现属性值(它实际上在呈现事件阶段 [)] 期间删除了属性。”:

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

    解决办法:

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

    感谢 Dave Parslow 的博文:Assigning a value to an ASP.Net CheckBox

    【讨论】:

      猜你喜欢
      • 2016-06-07
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多