【问题标题】:Dynamically add ListItem to RadiobuttonList with proper ID in ASP.NET在 ASP.NET 中使用正确的 ID 将 ListItem 动态添加到 RadiobuttonList
【发布时间】:2018-02-16 11:13:04
【问题描述】:

我正在尝试从后面的代码中动态添加单选按钮。我通过调用以下代码添加它:

    private void AddRadioButtonList(string id, bool isBool)
    {
        RadioButtonList radioButtonList = new RadioButtonList();
        radioButtonList.ID = id;
        form1.Controls.Add(radioButtonList);
        if (isBool) { GenerteTrueFalseListItems(radioButtonList); }
        form1.Controls.Add(new LiteralControl("<br />"));
    }

isBool为真时,调用如下函数:

    private void GenerteTrueFalseListItems(RadioButtonList item)
    {
        item.Items.Clear();
        item.Items.Add(new ListItem("True", "true"));
        item.Items.Add(new ListItem("False", "false"));
    }

但页面上的单选按钮缺少正确的 ID,我只能从整个页面中选择一个单选按钮。

我希望单选按钮的 ID 为“true”或“false”。

我应该怎么做才能正确呈现单选按钮?

【问题讨论】:

  • 你期待什么 ID?
  • 我正在将字符串 id 发送到 addRadioButtonList 函数,稍后我想用它来提取用户选择的数据。当我填充硬编码的 时,我的代码有效
  • 调用方法时传递的值是什么?
  • 字符串和布尔值? AddRadioButtonList 是从函数“private void AddElement(Xelement element)”调用的,该函数采用 xml 属性的值并确定在何处添加单选按钮或文本框。传递给 AddRadioButtonList 的字符串取自属性之一的值,“isBool”的值为根据 swich 确定。目前 isBool 只能为真。
  • 我唯一看到的是正确的 ID(false_0false_1)。

标签: c# asp.net .net webforms


【解决方案1】:

input 元素的 value 将是 truefalse 但 ID 由 ASP.NET 根据您为 RadioButtonList(而不是 ListItem)提供的 ID 自动生成,然后是下划线和然后是每个 RadioButtonList 选项的序号。 (会因ClientIDMode 设置而异)。

因此,如果您将 ID 为 test 分配给 RadioButtonList,则 ASP.NET 为每个 ListItem 生成的 input 元素将具有 ID test_1test_2test_3 等.

如果您要更改为 RadioButtons 而不是 RadioButtonList,那么每个 RadioButton 都将具有您指定的 ID(取决于 ClientIDMode)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多