Привязка даты в текстовом поле в ListView

#c# #asp.net #listview

#c# #asp.net #listview

Вопрос:

У меня есть ListView, и в нем есть поле с некоторой датой, поступающей из базы данных. Теперь, когда я нажимаю на кнопку редактирования, на следующей странице редактирования я хочу показать точную дату в конкретном поле даты.

Смотрите следующие скриншоты:

Основной вид:

введите описание изображения здесь

После нажатия:

введите описание изображения здесь

Я написал следующий код для привязки даты:

 <asp:TextBox runat="server" Text='<%#Bind("FirstVisitDate", "{0:MM/dd/yyyy}") %>' ID="FirstVisitDate" CssClass="form-control" TextMode="date" />
 

Но это не работает.

Комментарии:

1. Вы получаете какую-либо ошибку здесь?. Каков ваш код кнопки редактирования ссылки. Вы должны показать нам эти коды.

2. @gkrishy я не получаю никаких ошибок, я просто передаю соответствующий идентификатор элемента, используя значение querystring, и связываю его со списком на странице редактирования

Ответ №1:

Используйте это вместо вашего:

 <asp:TextBox runat="server" 
             Text='<%# String.Format("{0:MM/dd/yyyy}", Eval("FirstVisitDate")) %>' 
             ID="FirstVisitDate" CssClass="form-control" TextMode="date" />
 

Если вы все еще получаете ошибку, вы можете преобразовать ее в DateTime, посмотреть, работает ли она:

  Text='<%# String.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(Eval("FirstVisitDate")) %>' 
 

также у нас нет TextMode=»date»?? удалите и это.

Вы также можете попробовать этот способ, который намного лучше, чем Eval с точки зрения производительности:

 Text='<%# String.Format("{0:MM/dd/yyyy}", ((System.Data.DataRowView)Container.DataItem)["FirstVisitDate"] %>' 
 

если вы хотите отобразить формат даты, вам следует использовать заполнитель следующим образом:
также вы можете использовать тип в качестве даты, как показано ниже:

  <asp:TextBox runat="server" placeholder="mm/dd/yyyy" type="date" ... />
 

Комментарии:

1. Привет, я использовал ваш код, он показывает следующую ошибку: «CS0103: имя ‘Bind’ не существует в текущем контексте»

2. каков тип данных для FirstVisitDate ? это дата-время?

3. Да, тип данных — DateTime

4. Попробуйте с помощью Eval, посмотрите, как это происходит.

5. Я изменил свой код на ваш, теперь ошибки нет, но ничего не происходит, он по-прежнему отображается так же, как показано на скриншоте выше

Ответ №2:

При использовании TextMode=»дата» вы всегда должны использовать формат гггг-ММ-дд (стандарт W3C)

 <asp:TextBox Text='<%# Bind("data", "{0:yyyy-MM-dd}")%>' runat="server" ID="dataTextBox" TextMode="Date" CssClass="form-control"/>