AJAX コントロール ツールキットを使用して、ASP.NET ページにスライダーを作成しました。スライダーの値を増減するために、「プラス」と「マイナス」のボタンも配置しました。各ボタンのクライアント クリック イベントで、いくつかの計算を行いasp:label
、スライダーの下に表示する Javascript 関数を使用しました。問題は、スライダーをドラッグして値を変更すると、関数が呼び出され、計算がラベルとして表示されますが、スライダーの値をボタン (「プラス」または「マイナス」ボタン) で変更すると、 、関数が呼び出されますが、計算はラベルとして数秒間のみ表示されます。1 2 秒後にラベルが消え、何も表示されません。
誰かが私の問題について何か知っていますか?
コードは次のとおりです。
「プラス」ボタン:
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/icon_plus1.jpg"
style="z-index: 1; 左: 830px; 上: 130px; 位置: 絶対" onclientclick="change1();"/>
これは私が呼び出している関数です:
function change1() { var object = document.getElementById("TextBox"); var val = object.value; object.value = parseInt(val) + 5; updatesum(); }
主な計算は
updatesum()
関数にあります。function updatesum() { var principal = slider1Value; var daily_interest_rate = eval((360 / 100) / 365); var transaction_fee = eval(5.50); var number_of_days = slider2Value; var due_date = addDays(eval(number_of_days)).toDateString(); var interest_amount = (eval(daily_interest_rate) * eval(number_of_days) * eval(eval(principal) + eval(transaction_fee))) + eval(transaction_fee); var total_amount = interest_amount + eval(principal); lblDate.innerHTML = due_date; lblBorrow.innerHTML = "£ " + slider1Value; lblInter.innerHTML = "£ " + interest_amount.toFixed(2); lblRepay.innerHTML = "£ " + total_amount.toFixed(2); }
スライダーとそのターゲット コントロール ID テキスト ボックス:
<ajaxToolkit:SliderExtender ID="SliderExtender2" runat="server" length="400" Enabled="True" Maximum="400" Minimum="0" Steps="80" TargetControlID="TextBox" BoundControlID="TextBox1" RailCssClass="SliderRail"> </ajaxToolkit:SliderExtender> <asp:TextBox ID="TextBox" runat="server" OnChange ="javascript:updatesum(this);" style="z-index: 1; top: 130px; position: absolute; left: 430px; bottom: 130px" </asp:TextBox>