2009-09-24 3 views
26

Есть ли какой-либо хороший бесплатный элемент управления выбором времени с открытым исходным кодом, который хорошо сочетается с управлением календаря ASP.NET?ASP.NET DateTime Picker

+3

Вы видели или использовали jQuery UI? Есть сборщик данных, который отлично работает. – Sebastian

+1

Вот ссылка на этот сборщик: http://milesich.com/timepicker/ –

+1

sebastian & john, я не пробовал jquery. Интерфейс выглядит великолепно, я собираюсь попробовать. еще раз спасибо. – SoftwareGeek

ответ

21

JQuery имеет лучший datepicker ИМХО. Хотя это не относится к .Net, все еще отлично работает.

HTML:

<input type="text" value="9/23/2009" style="width: 100px;" readonly="readonly" name="Date" id="Date" class="hasDatepicker"/> 

В голове элемента:

<script src="../../Scripts/jquery-1.3.2.min.js" language="javascript" type="text/javascript"/> 
<script src="../../Scripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"/> 

Простой, как это!

+1

+1 - Это тот, который я использую. – Martin

+5

@ Chuck-i принял ваше решение, но сообщив вам, что вам не хватает следующего экземпляра, который необходим для datepicker. '$ ("# Date"). Datepicker();' – SoftwareGeek

+16

Пожалуйста, исправьте меня, если я ошибаюсь, но этот элемент управления jQuery не поддерживает часть времени «DateTime». Я ошибаюсь? Я не вижу, как этот элемент управления является DateTime Picker, поскольку он просто Datepicker. – dyslexicanaboko

8

Поскольку это единственный один я использовал, я хотел бы предложить CalendarExtender от http://www.ajaxcontroltoolkit.com/

+1

В прошлый раз, когда я пытался использовать этот инструментарий, я отказался от первого раза, когда мне нужно было настроить/расширить что-то. Исходный код был ужасен. Я определенно надеюсь, что они улучшились с тех пор, но на основе моего опыта (и богатства лучших опций управления Ajax, таких как Ext, YUI, Dojo и т. Д.), Я бы избегал всей этой библиотеки, как чума. –

+2

sshow, я использую ajaxcontroltoolkit для календаря, но он не поддерживает компонент времени – SoftwareGeek

+1

Возможно ли, что MaskedEdit может дать вам то, что вы хотите? http://www.ajaxcontroltoolkit.com/MaskedEdit/MaskedEdit.aspx – sshow

3

Basic Date Picker Lite

Это бесплатная версия своего флагманского продукта, но он содержит дату и время сборщика родной для ASP.NET.

29

Ответ на ваш вопрос: Да, есть хорошее управление свободным/открытым исходным кодом, которое хорошо сочетается с управлением календаря ASP.NET.

Управление календарем ASP.NET просто пишет таблицу html.

Если вы используете HTML5 и DOT.NET Framework 4.5, вместо этого вы можете использовать элемент управления ASP.NET TextBox и установить для свойства TextMode значение «Дата» или «Месяц» или «Неделя» или «Неделя», Time "или" DateTimeLocal ", или если вы используете , а не, используя Chrome или Firefox или Internet Explorer, вы также можете установить для этого свойства значение" DateTime ".

Затем прочитайте свойство Text, чтобы получить дату, или время, или месяц или неделю в виде строки из TextBox.

Если вы используете DOT.NET Framework 4.0 или более раннюю версию, вы можете использовать либо тип ввода html5 = «дата», либо тип ввода = «месяц» или тип ввода = «неделя» или тип ввода = «время», или введите тип = "datetime-local", или если вы используете , но не с использованием Chrome или Firefox или Internet Explorer, тогда вы также можете использовать тип ввода = "datetime".

Если вам нужен код на стороне сервера (написанный на C# или Visual Basic), информация, вводимая пользователем в поле даты, то вы можете попробовать запустить этот элемент на сервере, записав внутри тега ввода runat="server"

Также укажите этому элементу идентификатор, чтобы вы могли получить к нему доступ по серверному коду. Прочтите свойство Value, чтобы ввести дату ввода, время, месяц или неделю в виде строки. Если вы не можете запустить этот элемент на сервере, вам потребуется скрытое поле в дополнение к типу ввода = «дата» или «время» или «месяц» или «неделя». В функции отправки (написанной в javascript) задается значение скрытого поля для значения типа ввода = «дата» или «время», или «месяц», или «неделя», а затем на стороне сервера кода, прочитайте свойство Value этого скрытого поля как строку.

Уверенный, что элемент скрытого поля html может работать на сервере.

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

+1

Довольно хорошее решение. Интересно, почему никто не отправил его нигде. – Vikas

+1

Хотя это прямо не отвечает на вопрос, это самое чистое решение. Спасибо за это. – sheppe

2

Существует простая, из коробки реализация: HTML 5 input type="date" и другие типы ввода, связанные с датой.

Хорошо, вы не можете много стилизовать элементы управления, а это doesn't work on every browser, но все же это может быть очень хорошим вариантом в долгосрочной перспективе, если все современные браузеры поддерживают его и не хотят включать в себя тяжелые библиотеки, t всегда хорошо работает на мобильных устройствах.

2

Это решение без jquery.

Добавить календарь и TextBox в WebForm -> Источник WebForm имеет следующее:

<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange"> 
</asp:Calendar> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

Создание методов в CS файл WebForm:

protected void Page_Load(object sender, EventArgs e) 
    { 
     TextBox1.Text = DateTime.Today.ToShortDateString()+'.'; 
    } 

    protected void DateChange(object sender, EventArgs e) 
    { 
     TextBox1.Text = Calendar1.SelectedDate.ToShortDateString() + '.'; 
    } 

Метод DateChange связан с событием календаря SelectionChanged. Это выглядит так: DatePicker Image