【问题标题】:Hide show error隐藏显示错误
【发布时间】:2011-11-17 14:08:31
【问题描述】:

我有一个下拉列表,它非常简单。如果您没有从 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;
}

非常感谢您

【问题讨论】:

  • 你必须有一个回发。您是否考虑过添加Validator?
  • 当天最矛盾的标题应该有一个徽章。

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


【解决方案1】:

就这么简单:

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;

【讨论】:

  • 如此简单如此高效。谢谢先生,这正是我所需要的
  • 干杯,有时事情比我们想象的要简单。 :-)
  • 你能帮我做点别的吗?
  • 不能承诺任何事情.. 帮你什么?如果有新问题,请将其作为新问题发布并在此处发布链接。
  • 不是新的,是相同的,但我现在有 3 个 DDl 和 3 个不同的错误,我如何将所有这 3 个错误显示为单个

    ? :)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:
    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】:

      我将您的代码修改为可以工作。 (至少我认为你正在寻找)

         <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 = ""}
      

      【讨论】:

        【解决方案5】:

        您也可以使用RequiredFieldValidator:

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

        【讨论】:

        • 感谢您的评论先生,我会考虑该功能
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多