RadioButtonList及其' Value'属性

时间:2015-04-01 16:52:51

标签: asp.net radiobuttonlist

我想知道RadioButtonList中项目的'Value'属性。

如果我想获取列表中所选单选按钮的值,则这些值必须是唯一的,否则它将自动选择它找到的第一个项目,其中包含我正在寻找的值。所以没有重复的值。

这是为什么?我环顾网络,使用它们,所以我知道它是如何工作的,但我想知道它为什么这样工作。

如果我在列表中选择一个项目,它会知道我选择了哪个项目。按钮填写,你可以得到所选项目的索引...所以为什么不去:“好的,你选择了索引为X的项目。你还想要值吗?好的,让我访问列表,转到项目X并获取其值。“

我只能认为,当你想要一个项目的价值时,它是按价值而不是按指数然后按价值来看?

更新1: 在我的特殊情况下,我这样做:

我有1个RadioButtonList,里面有3个项目(RadioButtons)。以下选择...案例发生在按钮单击内。

Select Case RadioButtonList1.SelectedItem.Text
    Case "TextA"

    Case "TextB"
       //This RadioButton has a value of 200
    Case "TextC"
       //This RadioButton has a value of 200
End Select

这适用于第一个Case而且只适用于其他一个Case。在调试时,第一和第二个案件都很顺利。当我选择第三个RadioButton,然后执行该事件时,它将自动选择第二个RadioButton,因为它具有与第三个相同的值,但在列表中排在第一位。

更改其中一个相同的值可修复此问题。

1 个答案:

答案 0 :(得分:0)

不确定我完全理解,您是否有HTML,脚本要分享?如果您使用重复的ID对单选按钮组进行分组,则可能会出现问题;你应该使用相同的名称属性。在这种情况下,如果您尝试使用selectElementById获取值,它将只抓取第一个。 由于您“想要获取列表中所选单选按钮的值”,您可以获取同名输入数组(getElementsByName)并循环查找“CHECKED”条件:

<input type="radio" name="cars" value="beamer" checked="checked">BMW<br><br>
<input type="radio" name="cars" value="prius">Prius<br><br>
<input type="radio" name="cars" value="volvo">Volvo<br><br>
<input type="radio" name="cars" value="beamer">BMW<br><br>
<input type="radio" name="cars" value="prius">Prius<br><br>
<input type="radio" name="cars" value="volvo">Volvo<br><br>
<p>Selected Car Value and Index:</p>
<div id="selectedCar"></div><br><br>

<button onclick="getVal()">Get Value and Index</button>

<script>
var getVal = function(){
    var cars = document.getElementsByName('cars');
    var result = document.getElementById("selectedCar");
    for (var i = 0, length = cars.length; i < length; i++) {
        if (cars[i].checked) {
            result.innerHTML = "value: " + cars[i].value + " and index: " + i;
            break;
        }
    }
}
</script>