誰かが助けてくれることを願っています。私はどこでもこれに対する答えをチェックしましたが、何も見つかりません。「発砲」する最初のifステートメントを取得できません。
私のフォームには、ユーザーが数量を入力するためのテキストボックスがあり、サブカテゴリ名に「Foil」と「Standard」または「Printed」と「Mini」が含まれる製品の場合、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";
}
}
何らかの理由で、最初の条件ではなく最後の条件でのみ機能するようです。条件ステートメントの位置を切り替えても、最後のステートメントでのみ機能し、最初のステートメントでは機能しません。
だから私はそれが意味論的な問題だと思っていますか?どんな助けでも大歓迎です!! ありがとう!