我有一个下拉列表,非常简单。如果您没有从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;
}
非常感谢你提前
答案 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 = ""}