2009-04-01 3 views
1

Мне нужно добавить вызовы JavaScript в некоторых элементах управления, я использую мастер-страницы, но для того, чтобы получить идентификатор клиента contentplaceholder, я повторяю элементы управления формами. есть ли другой способ получить код сервера на странице содержимого?Как получить идентификатор клиента ContentPlaceHolder в простой форме?

foreach (Control control in this.Form.Controls) 
       { 
        if (control is ContentPlaceHolder) 
        { 
         contentPlaceHolderID = control.ClientID; 
         break; 
        } 
       } 

ответ

2

Если есть только несколько элементов управления, как это вы можете создать глобальную переменную:

var contentPlaceholderId = '<%= this.ContentPlaceholder1.ClientId %>' 
+0

Это работает с главной страницы (без этого «префикса»), но не удается, если я попытаюсь добавить ее внутри самого содержимого. – Frug

0

я сделать следующее в JQuery:

$("*[id$='DivFullWarning']").each(function() { 
    // do whatever in here 
}); 

это поиск какого-либо контроля, который содержит DivFullWarning в их ID, так что вы могли бы назвать свою ContentPlaceHolder «ContentPlaceholder», а затем, независимо от того, как много жереха. net muck с вашим идентификатором, вы все равно сможете захватить его на стороне клиента.

Вы можете просто разместить содержимое placeHolder где-нибудь, чтобы вам не пришлось перебирать все элементы управления.

+1

Быстро мысль, Wouldnt, что также соответствует всем автоматически сгенерированные идентификаторы внутри ContentPlaceHolder? – sisve

+0

hah, thats a good point =) – sontek