Невозможно получить доступ к дочернему элементу управления в пользовательском элементе управления, используя JavaScript - PullRequest
0 голосов
/ 18 октября 2010

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

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;
                }
            }
        }
    }
}

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

Страница .aspx называет пользовательский элемент управления следующим образом:

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

ПОЖАЛУЙСТА, ПОМОГИТЕ !!!!

1 Ответ

0 голосов
/ 19 ноября 2010
var grid = document.getElementById('SettingsControl1_gridView');

помогает мне.

Если вы выполняете сценарий ВНУТРИ пользовательского элемента управления, вы должны использовать 'SettingsControl1$gridView'.

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

...