テキストボックスへの入力を制限する必要があります。ページの読み込み時に、リピーターのテキスト ボックスには、リピーターのアイテムのカートン数量が自動入力されます。私はこのコードで OnItemCreated メソッドでこれを行っています:
txt.Text = DataBinder.Eval(e.Item.DataItem, "CtnQty").ToString();
私がする必要があるのは、デフォルト値よりも多くの値が選択された場合に、値が自動的に次の倍数に設定されるように、(できれば Javascript を使用して) 入力を再構築することです。それよりも小さい場合、入力された値はすべて受け入れられます。たとえば、デフォルトが 12 で 13 が入力された場合、これを 24 に自動修正する必要があります。11 が入力された場合、値は 11 のままです。
私は次のように Math.round 関数で遊んでいます:
<input type="text" onblur="this.value=Math.round(parseInt(this.value)/12)*12" />
しかし、動的な値を受け入れることができません。これを行うと、「サーバー タグの形式が正しくありません」という解析エラーが発生します。
<input type="text" onblur="this.value=Math.round(parseInt(this.value)/<%# DataBinder.Eval(Container.DataItem, "CTNQTY") %>)*<%# DataBinder.Eval(Container.DataItem, "CTNQTY") %>" />
そして、デフォルトより少ない場合は受け入れ、それ以上の場合は multiplt という問題が発生します。これには、より詳細な Javascript 関数が必要だと思いますが、Google で調べても、探しているものが見つかりません。どんなアイデアでも大歓迎です。
ありがとう