Divya Aq Ответов: 4

как получить идентификатор элемента ретранслятора в jquery


как получить идентификатор текстового поля внутри вложенного ретранслятора в jquery.

Вот jquery:
<script type="text/javascript">
        var e = jQuery.noConflict();
        e(document).ready(function () {
            e("#<%= datepicker.ClientID %>, #datepicker").datepicker({
                changeMonth: true,
                changeYear: true
            });
        });
    </script>


<asp:Repeater runat="server" ID="rpfollowup">
                <ItemTemplate>

//some txtboxes
 <asp:Repeater runat="server" ID="rpactivity" OnItemDataBound="rpactivity_ItemDataBound" >
                <ItemTemplate>

  <tr>
            
              <td > <asp:TextBox  ID="Activities" runat="server" CssClass="span10"   Text='<%#Eval("Activity")%>'></asp:TextBox></td>
            <td > <asp:TextBox  ID="datepicker" runat="server" CssClass="span10" ClientIDMode="Static"  Text='<%#Eval("Start_Date")%>'></asp:TextBox></td>
              </ItemTemplate></asp:Repeater>
 </ItemTemplate></asp:Repeater>


я сократил код, чтобы избежать путаницы.

Pradip R

Вы хотите инициализировать этот элемент управления datepicker над этим текстовым полем, не так ли?

4 Ответов

Рейтинг:
2

Pradip R

Посмотрев на ваш комментарий,
Вы можете перебирать jQuery для каждого входного сигнала выбора даты ретранслятора, см. ниже код:

<div class="wrapper">
<asp:repeater runat="server" id="rpfollowup" xmlns:asp="#unknown">
...
Your ItemTemplate Snippet
...
</asp:repeater>
</div>


Я добавил div с классом
wrapper
к вашему ретранслятору. Теперь я буду перебирать внутри этой обертки div, чтобы найти наш входной элемент управления datepicker и один за другим инициализировать их с помощью плагина datepicker с соответствующими идентификаторами.

$(".wrapper input[id$=datepicker]").each(function(index) {
   // You can directly get ID here as well 
   var controlID = $(this).attr('id');
   
   $(this).datepicker({ // If you dont want to specify this, you can use # + controlID
     changeMonth: true,
     changeYear: true
   })
});


Надеюсь, вы понимаете!


Divya Aq

Привет, Прадип, это блестящая поддержка. должно быть, это сработало, но я столкнулся с той же проблемой. я думаю, что ретранслятор внутри ретранслятора создает проблему.

Pradip R

Да, вам нужно найти то же самое для этого подконтрольного элемента управления, а затем итерацию, можете ли вы опубликовать свой визуализированный HTML-код так, чтобы мне было очень легко итерировать и помогать вам.

Рейтинг:
2

Pradip R

Дайте вашему текстовому полю класс

<asp:TextBox ID="datepicker" runat="server" CssClass="span10 datepicker" ClientIDMode="Static" Text='<%#Eval("Start_Date")%>'></asp:TextBox>

Сценарий был бы:
var e = jQuery.noConflict();
e(document).ready(function () {
  e(".datepicker").datepicker({
    changeMonth: true,
    changeYear: true
  });
});


ОПЕРАЦИОННАЯ

Если вы пытаетесь инициализировать текстовое поле с помощью ID, сценарий будет:

var e = jQuery.noConflict();
e(document).ready(function () {
  e('input[id$=datepicker]').datepicker({
    changeMonth: true,
    changeYear: true
  });
});


Обратите внимание, что идентификатор текстового поля будет таким, как он есть.


Divya Aq

Спасибо Прадипу, но все же, когда я добавляю календарную дату в текстовое поле 2-го элемента ретранслятора, значение находится в текстовом поле первого элемента. обратите внимание, что текстовое поле находится внутри вложенного ретранслятора

Рейтинг:
0

/\jmot

попробуйте вот так найти Thye TextboxControl Id

$(this).find('input[id$=datepicker]').datepicker({
     changeMonth: true,
     changeYear: true
});


или дайте имя класса элементу управления textbox внутри repeater..

$(this).find(".className").datepicker();


Рейтинг:
0

Member 11261171

Проверьте ниже решение даже у меня была такая же проблема:

Ваш текстовый ящик должен быть :

asp:TextBox ID="datepicker" runat="server" CssClass="span10 date-picker" ClientIDMode="Static" Text='<%#Eval("Start_Date")%>'></asp:TextBox>


А у вас jQuery код должен быть :
$(function () {
 $('.date-picker').each(function (i, obj) {
            var date = obj.defaultValue;
            $(obj).removeClass('hasDatepicker').attr("id", "").datepicker();
            $(obj).datepicker('setDate', date);
        });
 });