#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"/>