隐藏显示错误

时间:2011-11-17 14:08:31

标签: c# asp.net .net drop-down-menu

我有一个下拉列表,非常简单。如果您没有从DDL中选择任何内容,则单击该按钮以进一步发生错误。但是,当用户从DDL中选择某些内容时,我怎么做不出现错误?

这是标记:

<asp:DropDownList ID="DropDownList1" runat="server" CssClass="jump">
     <asp:ListItem Text="" Value="0"></asp:ListItem>  
     <asp:ListItem Text="Coupé" Value="Coupé" />
     <asp:ListItem Text="Cabriolet" Value="Cabriolet" />
     <asp:ListItem Text="Pickup" Value="Pickup" />   
     <asp:ListItem Text="Kombi" Value="Kombi" />   
     <asp:ListItem Text="Kombi-Coupé" Value="Kombi-Coupé" />  
     <asp:ListItem Text="Minibuss" Value="Minibuss" />
     <asp:ListItem Text="Sedan" Value="Sedan" />    
     <asp:ListItem Text="Skåpbil" Value="Skåpbil" />
     <asp:ListItem Text="SUV" Value="SUV" />                      
     <asp:ListItem Text="Övrig" Value="Övrig" /> 
</asp:DropDownList>
<p id="err" runat="server"></p>  

和代码隐藏:

if (DropDownList1.SelectedIndex == 0)
{
    err.InnerHtml = "<span style='font: normal bold 11px/100% Arial, Verdana, Sans-Serif; color: Red'>Du måste välja Fordonstyp!</span>";
    return;
}

非常感谢你提前

5 个答案:

答案 0 :(得分:3)

这很简单:

err.InnerHtml = "";
if (DropDownList1.SelectedIndex == 0)
    {
        err.InnerHtml = "<span style='font: normal bold 11px/100% Arial, Verdana, Sans-Serif; color: Red'>Du måste välja Fordonstyp!</span>";
        return;
    }

默认情况下会隐藏错误,然后仅在需要时显示错误。

编辑:支持多个下拉菜单首先使用函数很好地包装它:

private bool HandleDropDownError(DropDownList oDDL, HtmlGenericControl oErrorControl, string strErrorText)
{
    oErrorControl.InnerHtml = "";
    if (oDDL.SelectedIndex == 0)
    {
        oErrorControl.InnerHtml = "<span style='font: normal bold 11px/100% Arial, Verdana, Sans-Serif; color: Red'>" + strErrorText + "</span>";
        return false;
    }
    return true;
}

现在只需使用相同的错误标签来显示任何下拉列表的错误,并在Page_Load中包含此类代码:

if (!HandleDropDownError(DropDownList1, err, "Du måste välja Fordonstyp!"))
    return;
if (!HandleDropDownError(DropDownList2, err, "Du måste välja matta!"))
    return;
if (!HandleDropDownError(DropDownList3, err, "Du måste välja byggnad!"))
    return;

答案 1 :(得分:0)

您还可以使用RequiredFieldValidator

<asp:RequiredFieldValidator
        id="rfvFavoriteCar"
        Text="Du måste välja Fordonstyp!"
        ControlToValidate="DropDownList1"
        Runat="server" />

答案 2 :(得分:0)

如果您需要选择一个字段,为什么不删除空的选择线?

<asp:ListItem Text="" Value="0"></asp:ListItem>  

答案 3 :(得分:0)

if (DropDownList1.SelectedIndex == 0)
    {
        err.InnerHtml = "<span style='font: normal bold 11px/100% Arial, Verdana, Sans-Serif; color: Red'>Du måste välja Fordonstyp!</span>";
        err.visible = true;
        return;
    }
else
        err.visible = false;

答案 4 :(得分:0)

我把你的代码修改成了它。 (至少我认为你在寻找什么)

   <asp:DropDownList ID="DropDownList1" runat="server" CssClass="jump" AutoPostBack="true">

在这里

if (DropDownList1.SelectedIndex == 0)
{
    err.InnerHtml = "<span style='font: normal bold 11px/100% Arial, Verdana, Sans-Serif; color: Red'>Du måste välja Fordonstyp!</span>";
    return;
}else {err.InnerHtml = ""}