Member 12742983 Ответов: 1

Генерация событий textchanged в jquery


у меня есть 20 textchanged like (txtDescription1_TextChanged..............txtDescription20_TextChanged>
события, подобные приведенным ниже code.by делая так, результат должен прийти очень медленно, я хочу, чтобы это событие в коде jquery могло помочь любому........
protected void txtDescription1_TextChanged(object sender, EventArgs e)
        {
            DataTable qpdataset1 = new DataTable();
            if (!txtDescription1.Text.Equals(String.Empty) && (drpdownlistState.Text.Equals("VAT SALES")))
            {
                txtVatPercent1.Text = "5";
                txtSno1.Text = "1";

            }
            else if (!txtDescription1.Text.Equals(String.Empty) && (drpdownlistState.Text.Equals("CST SALES")))
            {

                txtVATAmt1.Text = "2";
                txtSno1.Text = "1";
            }
            else
            {
                txtVatPercent1.Text = "";
                txtSno1.Text = "1";


            }

            string desname = txtDescription1.Text.ToString();
            qpdataset1 = getqtyandprice(desname);
            DataSet dsCustomerChecking = GetRequiredDataTable("SELECT * FROM TAXINVOICE where CUSTOMERNAME = '" + txtcustomername.Text.Trim() + "'");
            if (dsCustomerChecking.Tables[0].Rows.Count > 0)
            {

                if (qpdataset1.Rows.Count > 0)
                {

                    txtPrice1.Text = qpdataset1.Rows[0]["UnitPrice"].ToString();

                    DropDownListUOM1.Text = qpdataset1.Rows[0]["UOM"].ToString();

                }
            }
        }


Что я уже пробовал:

я новичок в jquery и понятия не имею об этих функциях событий в jquery

Thanks7872

Добавьте класс во все текстовые поля. Определите событие изменения для этого класса

$(".yourclass").on('change', function() {......alert($(this).val())..});

Kornfeld Eliyahu Peter

Где вы прячете jQuery?
На каком основании вы решили, что 20 определений обработчиков событий делают ваше приложение медленным?
Поскольку вы собираетесь использовать SQL, вы все равно должны прийти на сервер - не уверен, что jQuery может вам здесь помочь...

1 Ответов

Рейтинг:
11

Member 10000326

use Jquery ajax in your code pass all the form inputs to your webmetod. 

Here is Clint side code

$(".txtDescription").on('change', function() {

if($(this).val()=='' &&$("#drpdownlistState").val()=="SALES"
{
  $('#txtVatPercent1').val("5");
  $('#txtSno1').val("1");
}
else if(your condition)
{
//Change this code 
 $('#txtVatPercent1').val("5");
  $('#txtSno1').val("1");
}
else
{
//Change this code 
 $('#txtVatPercent1').val("5");
  $('#txtSno1').val("1");
}

  $.ajax({
                type: "POST",
                url: "/Services/Webform1.aspx/DescriptionChange",
                data: "{txtDescription1: $('#txtDescription1').val(),
                        drpdownlistState: $('#drpdownlistState').val(),
                        txtVatPercent1: $('#txtVatPercent1').val(),
                        txtSno1: $('#txtSno1').val(),
                        txtcustomername: $('#txtcustomername').val(),
                        }",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    $("#txtPrice1").val(data.price);
                    $("#DropDownListUOM1").val(data.uom);
                },
                failure:function(data){
                           alert("failed");
                         }
            });

});

Here is your server side code
Add this method in your aspx file
[WebMethod]
public static string DescriptionChange(string txtDescription1, string drpdownlistState,string 
 txtVatPercent1, string txtSno1,string txtcustomername)
{
       var chk;
            string desname = txtDescription1.Text.ToString();
            qpdataset1 = getqtyandprice(desname);
            DataSet dsCustomerChecking = GetRequiredDataTable("SELECT * FROM TAXINVOICE where CUSTOMERNAME = '" + txtcustomername.Trim() + "'");
            if (dsCustomerChecking.Tables[0].Rows.Count > 0)
            {
 
                if (qpdataset1.Rows.Count > 0)
                {
 chk = new 
  {
    price= qpdataset1.Rows[0]["UnitPrice"].ToString() ,
    uom= qpdataset1.Rows[0]["UOM"].ToString();
  };
 
                }
            }

 return JsonConvert.SerializeObject(chk);
}