Member 13044689 Ответов: 1

Если выписка -- дата истекает через 45 дней --


Здравствуйте, у меня есть таблица с датой col, и эта дата имеет оператор if, чтобы проверить, истечет ли дата в 45 показать эту строку, если нет, не стройте, но некоторые, как это не работает, Может кто-то помочь или предложить новый ответ .

Что я уже пробовал:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        Label b = e.Row.FindControl("Label27") as Label;

        if (b != null)
        {
            DateTime lblDate;
            if (!DateTime.TryParse(b.Text, out lblDate))
            {
                // date time conversion not success 
                // you may have empty or invalid datetime 
                // do something in this case 
                return;
            }

            if (lblDate <= DateTime.Today.AddDays(45))
            {

                e.Row.Visible = true;

            }

            else
            {
                e.Row.Visible = false;

            }


        }
    }

Graeme_Grant

значение datetime.Сегодня.AddDays(45) всегда будет 45 днями в будущем с сегодняшнего дня.

Здесь недостаточно информации...

Разработчики жертвуют и жертвуют своим собственным временем бесплатно, чтобы помочь коллегам-разработчикам разрешить трудности. Важно, чтобы Вы были кристально ясны в том, что вы испытываете, с большим количеством информации, чтобы ваше и их время не было потрачено впустую. Чем яснее вопрос, тем больше шансов, что вы получите благоприятный ответ своевременно.

Пожалуйста, найдите время, чтобы просмотреть эти ссылки, прежде чем отправлять вопросы:
* Некоторые рекомендации по размещению вопросов на форумах[^]
* Сказки из Империи Зла-задавать вопросы-это навык[^]

Как только вы будете готовы обновить вопрос с четкими и краткими деталями, образцом кода, любыми сообщениями об ошибках (включая внутренние детали исключения) и т. д., Пожалуйста, нажмите на кнопку Улучшить вопрос чтобы добавить больше информации к этому вопросу.

Muddassir Mohammed

Таким образом, проблема заключается в том, что строка всегда видна, даже если условие if (lblDate <= DateTime.Сегодня.AddDays(45)) - это правда?

1 Ответов

Рейтинг:
1

Karthik_Mahalingam

попробовать это

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
       {
           Label lblDate = e.Row.FindControl("Label27") as Label;
           DateTime date; string yourDateFormat = "MM/dd/yyyy"; // check the label date format
           if (lblDate != null)
               if (!string.IsNullOrEmpty(lblDate.Text)) // check is null or empty
                   if (DateTime.TryParseExact(lblDate.Text, yourDateFormat, CultureInfo.CurrentCulture, DateTimeStyles.None, out date))
                   {
                       bool show = date <= DateTime.Today.AddDays(45);
                       e.Row.Visible = show;
                   }
       }

использовать значение datetime.Метод Метод Tryparseexact [^] для преобразования строки в datetime.