|
|
|
GridView
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, что не так делаю? Мне нужно в гриде сравнить значения ячеек столбца с текущей датой, если значение(дата) выходит за рамки текущей даты, то нужно покрасить строку в гриде красным цветом. Делаю так: protected void GridView1_DataBound(object sender, EventArgs e) { for (int i = 0; i < GridView1.Rows.Count; ++i) { GridViewRow tmp1 = GridView1.Rows[i]; string dtText = System.Text.RegularExpressions.Regex.Replace(GridView1.Rows[i].Cells[4].Text, "(\\d+)\\.(\\d+)\\.(\\d+)", "$3-$2-$1"); if (DateTime.Parse(dtText) < DateTime.Now.Date) tmp1.Style.Add("background-color", "Red"); } если вывести значение заполненого грида: Response.Write(tmp1.Cells[4].Text); то он выводит пустоту, хотя грид заполнен датами, в чем причина понять не могу(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2011, 13:53:15 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Можно и вот так, но смысл не меняется: for (int i = 0; i < GridView1.Rows.Count; ++i) { GridViewRow tmp1 = GridView1.Rows[i]; if (DateTime.Parse(tmp1.Cells[4].Text) < DateTime.Now.Date) tmp1.Style.Add("background-color", "Red"); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2011, 13:58:23 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
А может вообще на стороне БД это сделать ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2011, 14:13:41 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Andrey1306, У вас в чем проблемы - с покраской или с получением условий? Если убрать все условия, в красный цвет красит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2011, 14:57:01 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Проблема с самим условием, мне нужно чтобы оно срабатывало и соответственно красило строки по условию, а то что без условия работает я и так знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 09:39:39 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
alexay_1985, То что посоветовал Паганель через RowDataBound действительно самое оптимальное. Если связываете grisview через коллекцию своих объектов, то e.Row.DataItem - это объект, приводите его к объекту в вытягиваете дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 09:59:10 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Вы по ссылке ходили? Пример видели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 11:21:43 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Да видел пример, только пока не разберусь, как могу приминить DataItem в моем случае, пробовал писать следующее и всеравно не чего не выводит: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowState == DataControlRowState.Edit) { DataRowView rowView = (DataRowView)e.Row.DataItem; String dateEnd = rowView["dateEnd"].ToString(); Response.Write(dateEnd);// для наглядности } } Подскажите как быть, может неправильно делаю что то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 13:44:31 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Посмотрите под дебагом на rowView["dateEnd"] Что там за значение и какого типа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 13:50:03 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
alexay_1985, Условие Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 13:57:06 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Я так понимаю вы имели в виду с помощью точки останова проверить какое значение приходит, я проверил туда приходит Null, хотя грид забит данными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2011, 14:05:33 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
народ прав,обработку лучше перенести в запрос,а при биндинге строки обрабатывать результат,что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 15:16:23 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Ругаеться на строчку: if (DataBinder.Eval(row.DataItem, "имя поля").ToString() != "") компонент row, пишет что отсутствует в текущем контексте, может using кокогото не хватает или в чем еще может быть дело, как переменную мы же ее не объявляем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 09:03:14 |
|
||
|
GridView
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за помощь, вот рабочий вариант: if (e.Row == null) return; if (e.Row.DataItem == null) return; DataRowView rowView = (DataRowView)e.Row.DataItem; if (rowView["dateEnd"] == null) return; String dateEnd = rowView["dateEnd"].ToString(); if (DateTime.Parse(dateEnd) < DateTime.Now.Date) e.Row.Style.Add("background-color", "#F34E4E"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 09:08:28 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37525471&tid=1360156]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
285ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 597ms |

| 0 / 0 |
