Как настроить виджет пользовательского интерфейса datepicker так, чтобы он отражал значение текста метки datagrid
У меня есть виджет datepicker в каждой строке gridview для столбца "дата". В столбце date есть как datepicker, так и "asp:label", текст которого представляет собой дату из базы данных. На данный момент datepicker показывает сегодняшнюю дату при нажатии на нее. Я бы хотел, чтобы datepicker отражал ту же дату, что и этикетка.
Вот html-код для столбца даты gridview:
<asp:TemplateField AccessibleHeaderText="Date" HeaderText="Date"> <EditItemTemplate> <asp:TextBox ID="myText5" runat="server" Text='<%# Bind("Date") %>'></asp:TextBox> </EditItemTemplate> <HeaderTemplate> <h3 style="color:white">Date</h3> <asp:ImageButton runat="server" CommandName="Date" ImageUrl="~/Images/uparrow.png" OnCommand="Asc_Command" /> <asp:ImageButton runat="server" CommandName="Date" ImageUrl="~/Images/downarrow.png" OnCommand="Desc_Command" /> </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblDate" runat="server" Text='<%# Bind("Date") %>' Width="83px"></asp:Label> <input type="hidden" id="datepicker"/> </ItemTemplate> <HeaderStyle BackColor="#10591B" /> </asp:TemplateField>
Вот JQuery для datepicker:
$(function() { $( "[id$=datepicker]" ).datepicker({ showOn: "button", buttonImage: "/images/calendar2.png", buttonImageOnly: true, buttonText: "calender" }); $("[id$=datepicker]").datepicker("setDate", Date.now() ) });
Где он в настоящее время имеет "Date. now()" Я могу заменить и жестко закодировать дату без проблем, и это отлично работает. Однако мне нужно найти способ установить это из текста метки.
Что я уже пробовал:
Я попытался получить текст с этикетки следующим образом:
$(function() { $( "[id$=datepicker]" ).datepicker({ showOn: "button", buttonImage: "/images/calendar2.png", buttonImageOnly: true, buttonText: "calender" }); $("[id$=datepicker]").datepicker("setDate", document.getElementById("<%=((Label)gvHostTable.FindControl("lblDate")).ClientID%>").innerHTML) });
Это вызывает исключение нулевого объекта, я полагаю, потому что он пытается найти текстовые данные меток до того, как произойдет привязка данных для метки. Я очень новичок в использовании JQuery, так что прошу прощения, если это рудиментарный материал, который должен знать любой дурак.
j snooze
Я думаю,вы хотите установить datepicker на идентификатор метки. Он цепляется за текстовое поле или, в вашем случае, за метку. Поэтому установите метку как datepicker (или текстовое поле). Тогда он должен по умолчанию использовать все, что в нем есть. Вам не нужно использовать его по умолчанию в javascript.
Поэтому я думаю, что вы хотите что-то вроде $( "[id$=lblDate]" ).datepicker....
Member 12949206
Спасибо, что нашли время. Я попытался сделать так, как вы предлагаете, но потом датипикер исчезает со стола.
j snooze
вероятно, потому, что это метка, а не редактируемое текстовое поле. в этом случае идите другим путем и установите значение вашего скрытого поля (которое, по-видимому, является тем, на что указывает ваш datepicker) на дату вашей метки.
Member 12949206
Как установить значение скрытого поля? Извини за медлительность.
j snooze
вы, вероятно, могли бы просто использовать asp:hiddenfield и связать это нет?
Member 12949206
Пожалуйста, не могли бы вы опубликовать пример того, как это сделать - я, кажется, не могу привязаться к данным из asp:hiddenfield или из Thanks again :D
j snooze
Ваш пост показывает это
& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="lblDate" атрибут runat="сервер" текст=в'<%# Персонализация("дата") %&ГТ;' ширина="83px"&ГТ;
< / ItemTemplate
так что попробуйте это
<itemtemplate> <asp:Label ID="lblDate" runat="server" Text='<%# Bind("Date") %>' Width="83px"> <asp:HiddenField runat="server" id="datepicker" value='<%# Bind("Date") %>'/> </ItemTemplate
j snooze
Я должен отметить, что иногда asp.net делает разные вещи с идентификаторами, поэтому, если ничего не отображается, проверьте фактический исходный HTML-вывод вашей страницы, чтобы увидеть, как он называет скрытые поля datepicker, и соответствующим образом измените селектор jquery.
Member 12949206
попробовал именно это, и я получаю ошибку синтаксического анализа.
Во время синтаксического анализа ресурса, необходимого для обслуживания этого запроса, произошла ошибка. Пожалуйста, ознакомьтесь со следующими конкретными деталями ошибки синтаксического анализа и соответствующим образом измените исходный файл. Сообщение об ошибке парсера: тег сервера не очень хорошо сформирован.
Все работает нормально, пока я не добавлю значение= " <%# Bind ("Date") % & gt; part
j snooze
ладно,я просто писал о коде. На самом деле не попробовать его.
Убедитесь, что у вас есть соответствующие закрывающие теги. Я вижу, что сообщение было немного "очищено" проектом кода. ...хорошо, я не могу опубликовать закрывающие теги без того, чтобы codeproject не удалил их. посмотрите ваш образец выше и убедитесь, что присутствуют соответствующие закрывающие теги. чем меньше/больше знаков с косой чертой и контрольным типом.
Member 12949206
А! Да, конечно-пропустил заключительный тег. Теперь он работает, но datpicker не появляется. Как я могу проверить вывод html-источника, чтобы увидеть имена скрытых полей?
Karthik_Mahalingam
это исправлено?
Member 12949206
Боюсь, что нет! Когда я пробую предложенные методы, datepicker исчезает из столбца. Я попытался отладить страницу, и похоже, что идентификаторы не были изменены. Я бы с удовольствием решил эту проблему.
Karthik_Mahalingam
скажите, правильно ли я поняла, обряд,
в обычном режиме метка будет иметь значение даты
в режиме редактирования будет отображаться текстовое поле со значением даты, и если вы нажмете на него, то появится средство выбора даты для выбора даты.
после выбора даты вам нужно обновить дату в скрытом поле
кстати, зачем вам нужно скрытое поле?
и какой формат даты вы использовали.
Member 12949206
Я хочу, чтобы datepicker отображал даты, которые в данный момент привязываются и отображаются в ASP:label в виде текста. На данный момент и связанные данные, и datepicker видны в одном столбце, но datepicker показывает только сегодняшнюю дату. Для начала datepicker можно использовать только для чтения и просто показывать даты из связанного источника данных. Я пробовал использовать ASP: textbox, ASP:label и asp:hiddenfield, но безуспешно. Связанные данные без проблем отображаются в столбце в виде текста. спасибо за помощь
Karthik_Mahalingam
что это за формат?
Member 12949206
Извините за задержку. Формат - "дата" (гггг/ММ/ДД) из SQLMS. Возможно ли, что неправильный формат приведет к тому, что выбор даты не будет отображаться, но и не выдаст какую-то ошибку?
Karthik_Mahalingam
вы должны настроить в datepicker
Member 12949206
форматировать связанные данные в датапикере?
Karthik_Mahalingam
я имею в виду в jQuery datepicker options
Member 12949206
не могли бы вы опубликовать пример? Спасибо за помощь Karthik :D
Karthik_Mahalingam
проверить это Форматы Datepicker / jQuery UI[^]
Member 12949206
Извините, я думаю, вы не поняли. Я не хочу, чтобы datepicker форматировал текст. Я хочу, чтобы datepicker показывал дату в тексте. Я получаю этот текст из списка, и когда я нажимаю на datepicker в каждой строке сетки, я хочу, чтобы он открывался, показывая ту же выбранную дату, что и в тексте из связанных данных.
Karthik_Mahalingam
я имею в виду, что если вы определите формат, он автоматически установит дату, которая доступна в тексте, к которому привязан datepickcer
Member 12949206
если я жестко закодирую дату с помощью метода datepicker "set date", она откроется, показывая эту дату правильно. Как я могу заменить жестко закодированную дату датой из связанного источника данных?
Karthik_Mahalingam
можете ли вы опубликовать скриншот своей сетки / datepicker или любой другой релевантный
Member 12949206
ах! Кажется, нет возможности опубликовать скриншот
Karthik_Mahalingam
используйте любой бесплатный сайт для размещения изображений, разместите изображение и поделитесь ссылкой
imgur.com
Member 12949206
http://imgur.com/a/QAGnX
Karthik_Mahalingam
datepicker виден/доступен даже в режиме без редактирования ?
на картинке показано вот так
Member 12949206
Когда я загружаю страницу, datepicker не отображается. Он появляется только после того, как я нажимаю на значок календаря
Member 12949206
http://imgur.com/a/O8UEL
Karthik_Mahalingam
хорошо, я получил вашу проблему, я создам образец кода и опубликую его завтра, сейчас я чувствую сонливость.
Member 12949206
Большое вам спасибо! Очень ценю, что вы нашли время помочь-немного отдохнуть.
Karthik_Mahalingam
:)
Member 12949206
Я не совсем понимаю, что ты имеешь в виду. Когда я нажимаю на значок календаря, он открывает dtepicker, показывающий сегодняшнюю дату. Я бы хотел, чтобы он показывал дату, найденную в тексте столбца