2010-10-18 3 views
0

У меня есть пользовательский элемент управления «SettingsControl», содержащий ajax: CollapsiblePanelExtender, который, в свою очередь, имеет GridView (gridView) и checkBoxes. Помимо GridView у нас есть два LinkButtons «Выбрать все» и «Очистить все». Я написал для включения всех функций и очистки всех функций. Select All должен выбрать все строки в сетке, вызвав следующий JavaScript, написанный в файле .aspx клиента.Не удалось получить доступ к дочернему элементу управления с помощью пользовательского элемента управления с помощью javascript

function SelectAll(chk) 
{  
    //get reference of GridView control 
    var grid = document.getElementById('<%= SettingsControl1.FindControl("gridView").ClientID %>'); 
    //variable to contain the cell of the grid 
    var cell; 

    if (grid.rows.length > 0) 
    { 
     //loop starts from 1. rows[0] points to the header. 
     for (i=1; i<grid.rows.length; i++) 
     { 
      //get the reference of first column 
      cell = grid.rows[i].cells[0]; 

      //loop according to the number of childNodes in the cell 
      for (j=0; j<cell.childNodes.length; j++) 
      {   
       //if childNode type is CheckBox     
       if (cell.childNodes[j].type =="checkbox" && cell.childNodes[j].id.indexOf('chkSel')!=-1) 
       { 
       //assign the status of the Select All checkbox to the cell checkbox within the grid 
        cell.childNodes[j].checked = chk; 
       } 
      } 
     } 
    } 
} 

Я не могу получить доступ к usercontrol или любому элементу пользовательского контроля на стороне клиента. Я не уверен, как добиться этой функциональности.

страница .aspx кал пользовательский элемент управления, как:

<uc1:SettingsControl ID="SettingsControl1" runat="server" /> 

ПОМОГИТЕ !!!!

ответ

0
var grid = document.getElementById('SettingsControl1_gridView'); 

делает трюк для меня.

Если вы выполняете скрипт INSIDE, пользовательский элемент управления должен использовать 'SettingsControl1$gridView'.

Надеюсь, это поможет любому ... в любое время ... ;-)