Вопрос

Довольно новое для C#, мне нужно изменить значение, чтобы добавить минуты до даты, но это может быть нулевым.Вот как я делаю:

if(Eval("DUREE") != DBNull.Value)
{
    var duration = Convert.ToInt32(Eval("DUREE"));
    var date = Convert.ToDateTime(Eval("DATE"));
    var dateAsString = Convert.ToString(date.AddMinutes(duration));
    DataBinder.Eval(Container.DataItem, dateAsString, "{0:HH:mm}") 
}
else
{
    " - "
}
.

Здесь ошибка, которую я получаю:

Data datinginging: «System.data.datarowview» не создает свойства: '17 / 04/2013 13:30:00 '.

Так, проверка ложна?Или ошибка в другом месте?

Это было полезно?

Решение

Попробуйте использовать код в ASPX на месте, где вам нужна строка с датой или «-»

<%# Eval("DUREE") == DBNull.Value || Eval("DATE") == DBNull.Value
    ? " - "
    : Convert.ToString(Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToInt32(Eval("DUREE")))), "{0:HH:mm}") %>
.

Проблема в вашем коде, в котором вы в DataBinder.Eval проходят вторую строку параметра с датой, но не именем свойства.

Другие советы

Предполагая, что метод «Eval» возвращает вам значение даты в форме строки, это то, что вы пытаетесь сделать?: Генеракодицетагкод Это может быть ответ на вашу проблему для добавления минут.

Тем не менее, ошибка, которую вы получаете, кажется, указывает на другую проблему.Код, который вы разместили, кажется, в коде позади (?).Метод Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute) обычно используется в ASPX для веб-контроля, такого как элемент управления повторителем.В этом случае вам придется пройти второй параметр для DataBinder.Eval как имя публичного свойства.

Вы можете проверить это для Clach Click здесь

Вы можете сделать добавление минут при возврате значения свойства

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top