在ASP.NET

时间:2018-02-16 11:13:05

标签: c# asp.net .net webforms

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

    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,我只能从整页中选择一个单选按钮。

radio buttons rendered wrong on page

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

为了正确呈现单选按钮,我该怎么做?

1 个答案:

答案 0 :(得分:1)

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

因此,如果您将一个ID test分配给RadioButtonList,那么ASP.NET为每个input生成的ListItem元素将具有ID test_1,{{ 1}},test_2等等。

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