Member 14823087 Ответов: 1

Как мне передать значение из функции JavaScript для текстовых полей в таблицы.


  1. Страница содержимого имеет два вида сетки, gv_Purchase и gv_PurchaseDetails
  2. На Page_Load, gv_Purchase отображает данные из tbl_Purchase таблица SQL.
  3. Чтобы получить подробную информацию, пользователи должны выбрать любую конкретную строку, нажав на соответствующую кнопку ссылки ("выбрать").
  4. gv_PurchaseDetails будет виден и отобразит соответствующие данные относительно выбранной строки предыдущего Gridview (gv_Purchase) от tbl_PurchaseDetails таблица SQL.
  5. gv_PurchaseDetails имеет два поля шаблона, скорость и количество. Пользователи могут изменять значение с EditTemplate режим работы осуществляется нажатием на кнопку Ссылка (правка).
  6. Когда пользователи вводят значение в txt_Rate и txt_Quantity, событие onkeyup вызывает функцию для отображения значения (txt_Rate * txt_Quantity) в label_Amount из ряда вон выходящего. После этого пользователи будут/должны хранить данные, нажав на кнопку link (обновить).

Я не могу выполнить пункт № 6. Пожалуйста, дайте мне знать, как я должен отправить значение функции JavaScript в текстовые поля в gridview.

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

function CalculationTotal() {
    var grid = document.getElementById("<%= gv_PurchaseDetails.ClientID%>");
    for (var i = 0; i < grid.rows.length - 1; i++) {
        var rate = $("input[id*=txt_Rate]");
        var qty = $("input[id*=txt_Quantity]");
        var totalamount = rate[i].value * qty[i].value;
                    
        $("input[id*=lbl_Amount]").html(totalamount.toString());
    }
}

1 Ответов

Рейтинг:
1

Richard Deeming

Учитывая имя, я предполагаю, что label_Amount (или это так lbl_Amount?) является ли <asp:Label> контроль. Который будет оказывать <span> не <input>, так $("input[id*=lblAmount]") ничего не найдет.

Вам также нужно будет ограничить область действия селекторов строкой таблицы, которую вы обрабатываете, и пропустить строки верхнего и нижнего колонтитулов.

Попробуй:

function CalculationTotal() {
    var grid = document.getElementById("<%= gv_PurchaseDetails.ClientID %>");
    $(grid).find("tbody > tr").each(function(){
        var rate = $("input[id*=txt_Rate]", this);
        var qty = $("input[id*=txt_Quantity]", this);
        
        var totalAmount = rate.val() * qty.val();
        $("span[id*=lbl_Amount]", this).text(totalAmount.toString());
    });
}


Member 14823087

<asp:templatefield headertext="сумма">
<edititemtemplate>
&ЛТ;АСП:метка идентификатор="label_Amount" атрибут runat="сервер" текст="&ЛТ;%# Ивала("тамт")%&ГТ;"&ГТ;

<itemtemplate>
&ЛТ;АСП:метка идентификатор="ItmTmp_lbl_Amount" атрибут runat="сервер" текст="&ЛТ;%# Ивала("тамт")%&ГТ;"&ГТ;

<itemstyle horizontalalign="Center">

Richard Deeming

Как я уже сказал, Ан <asp:Label> окажет а <span> элемент, а не ан <input> элемент.

Вы пробовали код из моего ответа?

Member 14823087

Спасибо. теперь он работает в соответствии с вашим советом :)