Как я могу получить идентификатор клиента привязанного элемента управления с помощью тегов javascript и / или на стороне сервера? - PullRequest
0 голосов
/ 14 июня 2009
<asp:DataGrid>
    <ItemTemplate>
        1)
        <asp:TextBox ID="tbComments" onChange="javascript:checkLength(<%# tbComments.ClientId %>);" runat="server"/>
        2)
        <span id="<%# tbComments.ClientId %>Label"></span>
    </ItemTemplate>
</asp:DataGrid>

Какие-нибудь идеи, чтобы заставить вышеупомянутое работать (который не: P)?

Ответы [ 4 ]

3 голосов
/ 14 июня 2009

Измените вашу разметку, чтобы передать "this" как ссылку на данное поле для комментариев.

<asp:TextBox ID="tbComments" 
           onChange="javascript:checkLength(this);" runat="server"/>

Тогда в вашей функции checkLength () "e" является прямой ссылкой на элемент DOM, который вызвал событие onchange.

function checkLength(e){
  alert(e.id); //id of the comments box
  //get a reference to the span element immediately after the textbox
  theSpan = e.parentNode.getElementsByTagName("span")[0];
  theSpan.innerHTML = "comments length: " + e.value.length;
}
1 голос
/ 14 июня 2009

Просто добавьте класс в span или текстовое поле и используйте jQuery, чтобы найти элемент в dom и добавьте событие изменения в текстовое поле, запустите код checkLength

$(document).ready(function()
{
    $('.myClass').change(function()
    {
         // do your length check...
    });
});
0 голосов
/ 14 июня 2009

Что-то не так с вашей функцией JavaScript checkLength (), которая не добавляет метку к идентификатору клиента? Тогда ваш Javascript будет использовать оба:

<asp:DataGrid>
    <ItemTemplate>
        1)
        <asp:TextBox ID="tbComments"
            onChange="javascript:checkLength(<%# tbComments.ClientId %>, <%# tbComments.ClientId %>Label);"
            runat="server"/>
        2)
        <span id="<%# tbComments.ClientId %>Label"></span>
    </ItemTemplate>
</asp:DataGrid>
0 голосов
/ 14 июня 2009

Вы уверены, что проблема заключается не только в неправильном написании "ClientId" в следующем теге? : -)

<span id="<%# tbComments.CliendId %>Label"></span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...