2012-07-23 3 views
0

jquery가있는 사용자 정의 컨트롤에서 텍스트 상자에 액세스 할 때 약간의 문제가 있습니다.Jquery가 0으로 올바른 usercontrol 텍스트 상자 값을 설정했습니다.

내 페이지에는 그리드 컨트롤이 있고 28,29,30 행에는 동일한 usercontrol로 셀이 채워집니다. 이는 사용자 정의 컨트롤이 백분율을 입력하는 데 사용되고 한 열에서 세 값이 100 %를 초과 할 수 없기 때문입니다.

이렇게되면 올바른 텍스트 상자 값을 0으로 설정하거나 색상 (예 : 세 개의 숫자가 100 %를 초과 한 열)을 변경하고 싶습니다. 내 문제는 내가 jquery와 텍스트 상자에 액세스 할 수 없습니다.

내가 열심히 일하지만 전체 JQuery와 선택기를 연결할 때 작동하지 않는 JQuery와 선택기를 코딩 한

function percentageCheck(objNetMarginUnitsSoldFullPrice, objNetMarginUnitsSoldMarkdown, objNetMarginGoodsUnsold) { // pass objects with values 
    var percentageCntr = new Array(); 
    cntrString = ''; 

    for (var i = 1; i < 15; i++) { // 14 cells in row. Ignore cell 0 

     if (i < 11) { // less than logic to build control IDs 
      ctrlString = '_ctl0'; 
     } else { 
      ctrlString = '_ctl'; 
     } 

     percentageCntr[0] = objNetMarginUnitsSoldFullPrice[i]; 
     percentageCntr[1] = objNetMarginUnitsSoldMarkdown[i]; 
     percentageCntr[2] = objNetMarginGoodsUnsold[i]; 

     var total = percentageCntr[0] + percentageCntr[1] + percentageCntr[2]; 

     var result = 0; 

     if(total > 100) { 
      alert("Cannot exceed 100%"); 

      alert(i); // See correct int value 

//    $('#ctl00_PageContent_freight_rate_column_chaair_r28_ctl10_txtPercentage').val(result); Works! 

      $('#ctl00_PageContent_freight_rate_column_chaair_r' + 28 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434'); 
      $('#ctl00_PageContent_freight_rate_column_chaair_r' + 29 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434'); 
      $('#ctl00_PageContent_freight_rate_column_chaair_r' + 30 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434'); 
     } 
    } 
} 

자바 스크립트. 또한 jquery 사용자 정의 컨트롤에 액세스 할 수있는 적절한 방법이 있지만 여기에 작동하는지 확실하지 않습니다.

아이디어가 있으십니까? 감사.

답변

1

배경 색상을 설정하기위한 귀하의 JQuery와 올바른 것입니다

다음과 같은 문제가있을 수 있습니다 -

if (i < 11) { // less than logic to build control IDs 
      ctrlString = '_ctl0'; 
     } else { 
      ctrlString = '_ctl'; 
     } 

이유 I = 1은 당신이 _ctl01를 얻을 당신이 01으로 제어 할 수 있습니다 그렇게 생각 해달라고한다면 색인

+0

+1 마크에 스팟이 있습니다. –

+0

내 표 셀 0에서 행 이름이며 셀 1은 행의 마지막 셀인 셀 14까지 사용자 정의 컨트롤을 포함합니다. 그래서 var i = 1을 첫 번째 반복으로 0이 아니라 –

+0

@nickgowdy 내가 지적하고있는 것은 _ctl01이 _ctl0 또는 _ctl1과 같은 연결이므로 연결된 것입니다. – HatSoft

관련 문제