0

ユーザーが Web フォームのドロップダウン リストから番号を選択するたびに自動ポストバックを行うフォームがあります。自動ポストバックは、フォームの数を計算する以下のコードを実行します。

スクリーンショット:

ここに画像の説明を入力

問題は、再計算/自動ポストバックのたびに画面にちらつきが発生することです。

ちらつきを止めるためにこれをコーディングする別の方法はありますか?

C#

protected void Page_Load(object sender, EventArgs e)
{

    int intNum1 = 0;
    int intNum2 = 0;
    int intNum3 = 0;
    int totalt = 0;

    intNum1 = int.Parse(ddlNoadults.SelectedValue);
    intNum2 = int.Parse(ddlNoseniors.SelectedValue);
    intNum3 = int.Parse(ddlNochildren.SelectedValue);

    totalt = (intNum1 * 10) + (intNum2 * 8) + (intNum3 * 6);

    tbTotal.Text = totalt.ToString();

}

よろしく

お茶

4

3 に答える 3

2

UpdatePanel を使用し、計算を AJAXing することで、ちらつきを削除するか、少なくとも劇的に減らす必要があります。

http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx

于 2012-11-02T16:03:19.193 に答える
1

jquery/javascriptでできます。jquery の開始方法に関するこのチュートリアルが役に立ちます。

$('#<%= ddlNoadults.ClientID &>', '#<%= ddlNoadults.ClientID &>', 
'#<%=ddlNoadults.ClientID &>').change(function(){
        calculate();
});

function calculate(){
    num1 = parseInt($('#<%= ddlNoadults.ClientID &>').val());
    num2 = parseInt($('#<%= ddlNoseniors.ClientID &>').val());
    num3 = parseInt($('#<%= ddlNochildren.ClientID &>').val());
    totalt = (num1 * 10) + (num2 * 8) + (num3 * 6);
    $('#<%= tbTotal.ClientID &>').val(totalt) 
}

$(document).ready(function(){
     calculate();
});
于 2012-11-03T01:19:34.553 に答える
0

ユーザーのブラウザーで JavaScript が有効になっていることを信頼できると仮定すると、これは簡単なクライアント側のソリューションです。

選択した値を合計する関数を、計算をトリガーする各 ddl の変更イベントに添付するだけです...

$("#id-of-ddl").change(callyoursumfunctionhere);
于 2012-11-02T16:55:08.717 に答える