2

ユーザーコントロールラベルの値を使用して、asp.netページで計算を行う必要があります。

ユーザーコントロールラベルは次のとおりです。

 <asp:Label ID="LblInvoicePriceValue" runat="server" ></asp:Label>

私はそれをこのように含めます:

<Controls:VehicleInformation ID="VehicleInformationControl" runat="server" />

そして、私のjquery関数は次のようなものです。ポイント1と2を参照してください。

<script type="text/javascript">
        $(document).ready(function () {
            alert('call function to do calculation here');
            // 1.   Find in the vehicle information user control the invoiced ammount label
            // 2.   Find the vat excluded value **after** it was typed in the textbox
            // 3.   If invoiced ammount is greater than zero, then
            // 3.a  Find Label Percentage 
            // 3.b  Label.Text = (AmmountWithoutVat/InvoicedAmmount)*100 + '%'
        });
  </script>

生成されたHTML:UPdate1

ラベルの場合:

 <span id="MainContent_VehicleInformationControl_LblInvoicePriceValue" class="bold"></span>

テキストボックスの場合:

<input name="ctl00$MainContent$TxtVatExcluded" type="text" id="TxtVatExcluded" class="calculation" />

アップデート2:

<script type="text/javascript">
        $(document).ready(function () {
            alert('call function to do calculation here');

            $("#TxtVatExcluded").keypress(function() {
                var invoiceprice = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
                var vatexcluced = $("#TxtVatExcluded").val();
                var lblPercentage = $("#MainContent_LblPercentage");
                if (invoiceprice > 0) {
                    lblPercentage.text((vatexcluced / invoiceprice) * 100);
                }
            })

            // 1.   Find in the vehicle information user control the invoiced ammount label
            // 2.   Find the vat excluded value after it was typed in the textbox
            // 3.   If invoiced ammount is greater than zero, then
            // 3.a  Find Label Percentage 
            // 3.b  Label.Text = (AmmountWithoutVat/InvoicedAmmount)*100 + '%'
        });
  </script>
4

3 に答える 3

3

要素のレンダリングされたIDを使用して、jQueryを使用して値を取得できます

var lbl = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
var tbox = $("#TxtVatExcluded").val();

後で計算が完了したら、ラベルテキストを次のように更新できます。

$("#MainContent_VehicleInformationControl_LblInvoicePriceValue").html("new label");

アップデート:

ユーザーが入力するロジックを使用するには、関数をkeypress//イベントにバインドする必要がありますkeyupkeydown

$("#myinputbox").keypress(function() {
    var lbl = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
    var tbox = $("#TxtVatExcluded").val();
    //... so on
}

アップデート2:

値を使用して計算しようとしているので、最初に数値があることを確認する方が安全です。そのために、必要に応じてを使用できparseInt()ますparseFloat()

        $("#TxtVatExcluded").keypress(function() {
            var invoiceprice = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
            var vatexcluced = $("#TxtVatExcluded").val();
            var lblPercentage = $("#MainContent_LblPercentage");
            if (invoiceprice > 0) {
                lblPercentage.text((parseInt(vatexcluced) / parseInt(invoiceprice)) * 100);
            }
        })
于 2012-05-16T09:16:39.343 に答える
3
var label_text = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
$("#TxtVatExcluded").val(label_text);

更新 テキストフィールドが空白かどうかを確認する場合は、ラベルをコピーしてから、次のコードを使用してください

var label_text = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
var txt = $("#TxtVatExcluded").val();
if(txt.length==0)
{
  $("#TxtVatExcluded").val(label_text);
}
于 2012-05-16T09:17:41.433 に答える
2

これにより、ラベルコントロールの値が取得されます。

function Calculate()
{
    var InvoicedAmmount = $("#MainContent_VehicleInformationControl_LblInvoicePriceValue").text();
    var AmmountWithoutVat = $("#TxtVatExcluded").val();

    var Result = (AmmountWithoutVat/InvoicedAmmount)*100

    $("#OutputLabel").html(Result + " %");
}

onBlurイベントをテキストボックスに添付して、テキストボックスを離れたときに計算を実行することができます。入力したとおりに、金額を再計算する必要はありません。

$(document).ready(function () 
{ 
    $("#TxtVatExcluded").bind("blur",function(){ Calculate(); });
}
于 2012-05-16T09:18:04.573 に答える