Akhil Jain Ответов: 1

Как получить идентификатор клиента всего текстового поля в строке внутри сетки при использовании javascript?


Цитата:
у меня есть редактируемый Gridview(содержащий 7 редактируемых полей/текстовое поле в каждой строке). при нажатии кнопки(Обновить) я хочу найти идентификатор всего текстового поля, чтобы проверить, пусто ли текстовое поле или нет. для этого я делаю это как текстовое поле идентификатора клиента в chrome GridSubMeter_ctl10_txtMeterIdnbut, но идентификатор клиента динамически создается в разных браузерах (разные в firefox,opera).


var v = val.id.split('_')[2];
           var merter = document.getElementById('GridSubMeter_' +  v +'txtMeterIdn_' ).value.trim();
           var Billper = document.getElementById('GridSubMeter_' + v + 'txBillPer_' ).value.trim()
           var Endkwh = document.getElementById('GridSubMeter_' + v + 'txEndKwh_' ).value.trim();
           var startkwh = document.getElementById('GridSubMeter_' + 'txStartKwh_').value.trim();
           var ReadEndDate = document.getElementById('GridSubMeter_' +  v+'txReadEndDate_' ).value.trim();
           var ReadStartDate = document.getElementById('GridSubMeter_' + v+'txReadStartDate_' ).value.trim();
           var CTFACT = document.getElementById('GridSubMeter_' + v+ 'txCTFact_' ).value.trim();


function fnCheck(val) {
              var success = true;
              var text1 = val.value;
              var v = val.id.split('_')[2];
              var merter = document.getElementById('GridSubMeter_' +  v +'txtMeterIdn_' ).value.trim();
              var Billper = document.getElementById('GridSubMeter_' + v + 'txBillPer_' ).value.trim()
              var Endkwh = document.getElementById('GridSubMeter_' + v + 'txEndKwh_' ).value.trim();
              var startkwh = document.getElementById('GridSubMeter_' + 'txStartKwh_').value.trim();
              var ReadEndDate = document.getElementById('GridSubMeter_' +  v+'txReadEndDate_' ).value.trim();
              var ReadStartDate = document.getElementById('GridSubMeter_' + v+'txReadStartDate_' ).value.trim();
              var CTFACT = document.getElementById('GridSubMeter_' + v+ 'txCTFact_' ).value.trim();

              var btn = document.getElementById('GridSubMeter_' + v+'btn_Update_' );
              debugger;
                          if (merter != '') {
                          }
                          else {
                              alert("Meter Identifier is Required Field");
                              success = false;
                          }
              if (Billper != '') {
              }
              else {
                  alert("Bill Period is Required Field");
                  success = false;
              }
              if (Endkwh != '') {
              }
              else {
                  alert("EndKwh is Required Field");
                  success = false;
              }
              if (startkwh != '') {
              }
              else {
                  alert("StartKwh is Required Field");
                  success = false;
              }
              if (ReadEndDate != '') {
              }
              else {
                  alert("Read EndDate is Required Field");
                  success = false;
              }
              if (ReadStartDate != '') {
              }
              else {
                  alert("Read StartDate is Required Field");
                  success = false;
              }
                          if (CTFACT != '') {
                          }
                          else {
                              alert("CT Factor is Required Field");
                              success = false;
                          }


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

ar v = val.id.split('_')[2];
           var merter = document.getElementById('GridSubMeter_' +  v +'txtMeterIdn_' ).value.trim();
           var Billper = document.getElementById('GridSubMeter_' + v + 'txBillPer_' ).value.trim()
           var Endkwh = document.getElementById('GridSubMeter_' + v + 'txEndKwh_' ).value.trim();
           var startkwh = document.getElementById('GridSubMeter_' + 'txStartKwh_').value.trim();
           var ReadEndDate = document.getElementById('GridSubMeter_' +  v+'txReadEndDate_' ).value.trim();
           var ReadStartDate = document.getElementById('GridSubMeter_' + v+'txReadStartDate_' ).value.trim();
           var CTFACT = document.getElementById('GridSubMeter_' + v+ 'txCTFact_' ).value.trim();

1 Ответов

Рейтинг:
1

Vinod Jangle

Чтобы сделать его несколько простым вы можете установить "

ClientIDMode="Static"
к вашим элементам управления внутри gridview. Это позволит вам использовать тот же "идентификатор", который вы установили для управления в Javascript.

Например, предположим, что у меня есть элемент управления LinkButton с идентификатором "link1" внутри элемента управления Gridview. Если ClientIDMode установлен в статическое значение, вы можете использовать этот элемент управления с тем же идентификатором "link1".

Если это свойство не установлено в статическое ASP.NET будет иметь контроль, загруженный чем-то вроде '
GridView1_link1_0
- и тебе нужен код на javascript, как ты сейчас пытаешься.


Richard Deeming

Статический идентификатор клиента не будет работать в GridView - в итоге вы получите несколько элементов управления с одним и тем же идентификатором.