我希望有人能帮忙。我到处都检查过这个问题的答案,但找不到任何东西。我无法让我的第一个 if 语句“开火”。
在我的表单中,我有一个文本框供用户输入数量,当它是子类别名称中带有“箔”和“标准”或“印刷”和“迷你”的产品时,我试图将其验证为 150 . 如果它没有这 4 个单词中的任何一个,那么最小数量应默认为 250。这是我的“数量”文本框的代码:
<asp:TextBox ID="txtQuantity" runat="server" Text="Quantity" Width="300" />
<asp:RequiredFieldValidator ID="rfvQuantity" runat="server" ControlToValidate="txtQuantity" ErrorMessage="Quantity Required" Display="None" ValidationGroup="Quote" />
<asp:CompareValidator ID="cmvQuantity" runat="server" ControlToValidate="txtQuantity" ErrorMessage="Insufficient Quantity" Display="None" ValueToCompare="250" Operator="GreaterThanEqual" Type="Integer" ValidationGroup="Quote" />
<asp:CompareValidator ID="cmvQuantityText" runat="server" ControlToValidate="txtQuantity" ErrorMessage="Quantity Required" Display="None" Operator="DataTypeCheck" Type="Integer" ValidationGroup="Quote" />
这是背后的代码:
protected void rptProduct_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((CompareValidator)e.Item.FindControl("cmvQuantity")).ValueToCompare = ((Product)e.Item.DataItem).SubCategory.Category.Name.Contains("Foil") && ((Product)e.Item.DataItem).SubCategory.Name.Contains("Standard") ? "150" : "250";
((CompareValidator)e.Item.FindControl("cmvQuantity")).ValueToCompare = ((Product)e.Item.DataItem).SubCategory.Category.Name.Contains("Printed") && ((Product)e.Item.DataItem).SubCategory.Name.Contains("Mini") ? "150" : "250";
}
}
由于某种原因,它似乎只适用于最后一个条件,而不是第一个,即使我切换条件语句的位置,它仍然只适用于最后一个语句,而不是第一个。
所以我认为这是一个语义问题?任何帮助将不胜感激!!谢谢!