SelectedItem.Text是否在if语句中工作?

时间:2014-02-24 09:48:06

标签: c# asp.net

我有一系列下拉列表,在更改时调用一个函数,将整体值从二进制转换为十进制和十六进制。然后,我有一个if语句,检查所有列表是否已更改。我的If语句似乎没有正常工作,如果我在列表中选择0,项目会切换回 - 选择 - 。

以下是下拉列表代码

<asp:DropDownList ID="r1" runat="server" OnSelectedIndexChanged="convert" AutoPostBack="true" >
    <asp:ListItem Text="--Select--" Value="0" />
    <asp:ListItem Text="0" Value="0" />
    <asp:ListItem Text="1" Value="1" />
</asp:DropDownList>

这是if语句

if (r1.SelectedItem.Text != "--Select--" && 
    r2.SelectedItem.Text != "--Select--" &&      
    r3.SelectedItem.Text != "--Select--" && 
    r4.SelectedItem.Text != "--Select--" && 
    r5.SelectedItem.Text != "--Select--" && 
    r6.SelectedItem.Text != "--Select--" && 
    r7.SelectedItem.Text != "--Select--" && 
    r8.SelectedItem.Text != "--Select--" && 
    g1.SelectedItem.Text != "--Select--" && 
    g2.SelectedItem.Text != "--Select--" && 
    g3.SelectedItem.Text != "--Select--" && 
    g4.SelectedItem.Text != "--Select--" && 
    g5.SelectedItem.Text != "--Select--" && 
    g6.SelectedItem.Text != "--Select--" && 
    g7.SelectedItem.Text != "--Select--" && 
    g8.SelectedItem.Text != "--Select--" && 
    b1.SelectedItem.Text != "--Select--" && 
    b2.SelectedItem.Text != "--Select--" && 
    b3.SelectedItem.Text != "--Select--" && 
    b4.SelectedItem.Text != "--Select--" && 
    b5.SelectedItem.Text != "--Select--" && 
    b6.SelectedItem.Text != "--Select--" && 
    b7.SelectedItem.Text != "--Select--" && 
    b8.SelectedItem.Text != "--Select--")
{
    cBox.Attributes["InnerHtml"] = "test";
}
else
{
    cBox.Attributes["InnerHtml"] = "world";
}

3 个答案:

答案 0 :(得分:0)

if (Convert.toString(r1.SelectedItem.Text) != "--Select--")
{
    cBox.Attributes["InnerHtml"] = "test";
}
else
{
    cBox.Attributes["InnerHtml"] = "world";
}

你可以这样做,剩下的就是

答案 1 :(得分:0)

由于您在"--Select--"的顶部添加了dropdownlist,因此您可以使用DropDownList.SelectedIndex属性而不是DropDownList.SelectedItem。正如MSDN所说,

  

DropDownList.SelectedIndex是DropDownList控件中所选项的索引。默认值为0,它选择列表中的第一项。

if部分看起来有些混乱。首先使用Extract Method重构它,如下所示:

private bool AreAllProperValuesSelected()
{
    return
        (r1.SelectedIndex != 0) &&
        (r2.SelectedIndex != 0) &&
        (r3.SelectedIndex != 0) &&
        (r4.SelectedIndex != 0) &&
        (r5.SelectedIndex != 0) &&
        (r6.SelectedIndex != 0) &&
        (r7.SelectedIndex != 0) &&
        (r8.SelectedIndex != 0) &&
        (g1.SelectedIndex != 0) &&
        (g2.SelectedIndex != 0) &&
        (g3.SelectedIndex != 0) &&
        (g4.SelectedIndex != 0) &&
        (g5.SelectedIndex != 0) &&
        (g6.SelectedIndex != 0) &&
        (g7.SelectedIndex != 0) &&
        (g8.SelectedIndex != 0) &&
        (b1.SelectedIndex != 0) &&
        (b2.SelectedIndex != 0) &&
        (b3.SelectedIndex != 0) &&
        (b4.SelectedIndex != 0) &&
        (b5.SelectedIndex != 0) &&
        (b6.SelectedIndex != 0) &&
        (b7.SelectedIndex != 0) &&
        (b8.SelectedIndex != 0);
}

您可以使用上述方法的更短版本,如下所示:

private bool AreAllProperValuesSelected()
{
    var list = new List<DropDownList>
                   {
                       r1,
                       r2,
                       r3,
                       r4,
                       r5,
                       r6,
                       r7,
                       r8,
                       g1,
                       g2,
                       g3,
                       g4,
                       g5,
                       g6,
                       g7,
                       g8,
                       b1,
                       b2,
                       b3,
                       b4,
                       b5,
                       b6,
                       b7,
                       b8
                   };

    return list.TrueForAll(item => item.SelectedIndex != 0);
}

然后在if部分调用它,如下所示:

if (AreAllProperValuesSelected())
{
    cBox.Attributes["InnerHtml"] = "test";
}
else
{
    cBox.Attributes["InnerHtml"] = "world";
}

答案 2 :(得分:0)

试试这个

if (r1.Text != "--Select--" && 
r2.Text != "--Select--" &&      
r3.Text != "--Select--" && 
r4.Text != "--Select--" && 
r5.Text != "--Select--" && 
r6.Text != "--Select--" && 
r7.Text != "--Select--" && 
r8.Text != "--Select--" && 
g1.Text != "--Select--" && 
g2.Text != "--Select--" && 
g3.Text != "--Select--" && 
g4.Text != "--Select--" && 
g5.Text != "--Select--" && 
g6.Text != "--Select--" && 
g7.Text != "--Select--" && 
g8.Text != "--Select--" && 
b1.Text != "--Select--" && 
b2.Text != "--Select--" && 
b3.Text != "--Select--" && 
b4.Text != "--Select--" && 
b5.Text != "--Select--" && 
b6.Text != "--Select--" && 
b7.Text != "--Select--" && 
b8.Text != "--Select--")
{
    cBox.Attributes["InnerHtml"] = "test";
}
else
{
    cBox.Attributes["InnerHtml"] = "world";
}