いくつかの入力フィールドとバリデーターを備えた非常に単純な ASP.NET ページがあります。double を受け入れる 1 つのフィールドは次のようになります。
<asp:TextBox ID="tbHeight" runat="server" />
<asp:RangeValidator ID="vdHeight" runat="server"
ErrorMessage="Height must be a positive number" Text="*"
ControlToValidate="tbHeight" MinimumValue="0" Type="Double" />
これは期待どおりに機能し、ユーザーは数値 >= 0 を入力する必要があり
ます。更新: これは結局期待どおりに機能しません (プロジェクトの奇妙なバグ)。詳細については、以下の回答へのコメントを参照してください
次に、整数を受け入れるフィールドに対して同じことを試みます。
<asp:TextBox ID="tbGrossTonnage" runat="server" />
<asp:RangeValidator ID="vdGrossTonnage" runat="server"
ErrorMessage="Gross Tonnage must be a positive whole number" Text="*"
ControlToValidate="tbGrossTonnage" MinimumValue="0" Type="Integer" />
ASP ページをロードすると、次のエラーが表示されます。「vdGrossTonnage」の MaximumValue プロパティの値は「Integer」型に変換できません。
システムには特定の最大値要件がないので、「デフォルト」にしたいだけです(ただし、定数を受け入れないように見えるためInt32.MaxValue
、2,147,483,647を入力する必要があります)。MaximumValue
Int32.MaxValue
RangeValidator
タイプの が欠落しているプロパティInteger
を受け入れないのはなぜですか?MaximumValue
Double