Как получить clientID элемента управления Datalist с помощью jquery - PullRequest
2 голосов
/ 27 января 2012

Как получить clientID элемента управления Datalist с помощью jquery, я попытался использовать приведенный ниже код безуспешно:

$(document).ready(function(){
$('#<%=txtRenewalDate.ClientID %>').datepicker();
    $('#<%=txtCallBackDate.ClientID %>').datepicker();

});
<asp:DataList ID="dlCustomers" runat="server" ClientIDMode="Predictable">
    <ItemTemplate>
      <table border="0">
                    <tr>
                        <td class="">
                            RenewalDate:
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtRenewalDate" runat="server" Text='<%# Eval("RenewalDate") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="">
                            Callback
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtCallBackDate" runat="server" Text='<%# Eval("Callback") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr></table>
                     </ItemTemplate>
</asp:DataList>

Разметка при комментировании скрипта

                        <td class="">

                            RenewalDate:

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtRenewalDate" type="text" value="27/01/2012 00:00:00" id="txtRenewalDate" />

                        </td>

                    </tr>

                    <tr>

                        <td class="">

                            Callback

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtCallBackDate" type="text" value="27/01/2012 00:00:00" id="txtCallBackDate" />

                        </td>

                    </tr>

Я получаюошибки при запуске: имя 'txtRenewalDate' не существует в текущем контексте Имя 'txtCallBackDate' не существует в текущем контексте

Любые идеи, где я понимаю это неправильно.

Спасибо

Ответы [ 5 ]

0 голосов
/ 28 марта 2014

Вы можете выбрать элемент управления в jquery, используя выражение $ ('<% = "#" + control.ClientID%>').

Надеюсь, это поможет.

0 голосов
/ 07 июля 2013

Чтобы выбрать этот элемент, вы должны использовать что-то вроде этого:

var txtRen = $('#<%= dlCustomers.ClientID %>').Find('[id$=txtRenewalDate]');
0 голосов
/ 27 января 2012

Я думаю, что проблема может заключаться в том, что, поскольку эти элементы управления находятся в списке данных, а вы вызываете их извне, они технически не существуют в корне формы. Возможно, вам нужно сделать что-то вроде этого:

 $('#<%= dlCustomers.FindControl("txtRenewalDate").ClientID %>')

Я могу ошибаться, но это мое лучшее предположение.

0 голосов
/ 27 января 2012

если вы используете asp.net 4, то вы можете установить режим идентификатора клиента на статический, это проще, чем найти идентификатор клиента в DOM asp.net 4.0 clientID mode

0 голосов
/ 27 января 2012

Это полный / фактический источник страницы?Или у вас есть этот сценарий в разделе заголовка?Если у вас есть это в разделе заголовка, я полагаю, вам нужно добавить runat = "server" к вашему тегу head. Есть некоторые проблемы с запуском встроенного кода вне основного тега формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...