Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969, Появилась вот такая проблема:Как сделать так, что бы GridView запоминал просмотренные строки. Пришлось сделать возможность выбора вызываемой формы (окна?). Раньше форма вызывалась так: <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("код", "~/Edit.aspx?name={0}") %>' Target="_blank" Text="Подробно"></asp:HyperLink> - в этом случае просмотренная строка выделялась изменением цвета кнопки HyperLink. Сейчас пришлось сделать так: заменил HyperLink на LinkButton: <asp:LinkButton ID="ВыборСтроки" runat="server" CausesValidation="True" EnableViewState="TRUE" CommandName="Select" Text="Выбор"></asp:LinkButton> обработка нажатия кнопки "Выбор" делается так: Protected Sub GridReports_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridReports.SelectedIndexChanged Dim PageName As String Dim row As GridViewRow = GridReports.SelectedRow Dim str1 As Label = row.FindControl("label7") 'код Dim str2 As Label = row.FindControl("label8") 'crimcode Dim str3 As Label = row.FindControl("label3") 'раздел Session("sMainCode") = str1.Text If (Int(str3.Text) = 13 Or Int(str3.Text) = 14 Or Int(str3.Text) = 15) Then Session("sCrimCode") = str2.Text PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Edit", PageName, True) ScriptManager.RegisterStartupScript(Me, Me.GetType, "EditCrim", "OpenWindow('EditCrim.aspx','EditCrim');", True) Else PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Edit", PageName, True) End If Dim STW As LinkButton = row.FindControl("ВыборСтроки") STW.ForeColor = Drawing.Color.DarkMagenta End Sub Все работает, но ... строка, которая выбиралась не запоминается. Помогите плиз, разрешить проблему! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 11:55 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969просмотренная строка выделялась изменением цвета кнопки HyperLinkа сейчас цвет чего должен измениться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 11:58 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Да все равно чего. Хотя бы цвет кнопки "Выбрать" как было при использовании HyperLink. Главное условие, что бы при следующем просмотре таблицы было видно, какие записи просматривались, а какие нет. Насколько я понял, HyperLink работает с чем то вроде Cookies. Во всяком случае при нажатии на кнопку цвет меняется и этот цвет остается и при следующих сеансах работы. У меня заказчики занимаются просмотром отчетов, которые поступают в головной офис из регионов и им очень хочется, что бы было видно просматривали они эти отчеты или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 12:06 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969, ...ну, кроме как хранить статус строки (и логин просматривающего юзера) в БД - ничего и не получится .. даже если в куках хранить, пользователь может их почистить, зайти с другого компьютера ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 12:16 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
запоминание (и подкрашивание) посещенных ссылок - это работа браузера тут же действительно лучше средствами JS навеситься на клик по кнопке и где-то в куках этот факт запоминать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 12:17 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Придется делать через Cookies. Но интересно, как же HyperLink работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:26 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
если задано то так: http://htmlbook.ru/css/visited иначе стандартно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:27 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969Придется делать через Cookies. Но интересно, как же HyperLink работает? Этот вариант тоже рассматривал. Он самый простой. Проблема в том, что эти отчеты прочитывают как минимум 5 человек и каждый хочет, что бы было запоминание просмотренных им строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:28 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969Константин1969Придется делать через Cookies. Но интересно, как же HyperLink работает? Этот вариант тоже рассматривал. Он самый простой. Проблема в том, что эти отчеты прочитывают как минимум 5 человек и каждый хочет, что бы было запоминание просмотренных им строк.Это не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:38 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969Придется делать через Cookies. Но интересно, как же HyperLink работает?Как как. Переходы по ссылкам пишутся в историю браузера. А LinkButton рендерится как Код: html 1. То есть стандартное поведения гиперссылки зарубается. Надо писать свою реализацию через history, cookie или сервер, фигли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:39 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969Сейчас пришлось сделать так: заменил HyperLink на LinkButtonа кстати зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:42 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
ПаганельКонстантин1969Сейчас пришлось сделать так: заменил HyperLink на LinkButtonа кстати зачем?+1 Заменили открытие нового окна по ссылке на открытие через регистрацию скрипта на сервере: ScriptManager.RegisterStartupScript. Как-то через одно место это выглядит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 13:44 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
ПаганельКонстантин1969Сейчас пришлось сделать так: заменил HyperLink на LinkButtonа кстати зачем? В зависимости от раздела отчета открываются разные формы. Никакого варианта кроме описанного выше я не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 14:33 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
skyANAПаганельпропущено... а кстати зачем?+1 Заменили открытие нового окна по ссылке на открытие через регистрацию скрипта на сервере: ScriptManager.RegisterStartupScript. Как-то через одно место это выглядит. Может быть, но я не знаю способ прочитать строку в GridView кроме как так: Protected Sub GridReports_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridReports.SelectedIndexChanged Dim PageName As String Dim row As GridViewRow = GridReports.SelectedRow Dim str1 As Label = row.FindControl("label7") 'код Dim str2 As Label = row.FindControl("label8") 'crimcode Dim str3 As Label = row.FindControl("label3") 'раздел Session("sMainCode") = str1.Text If (Int(str3.Text) = 13 Or Int(str3.Text) = 14 Or Int(str3.Text) = 15) Then - если разделы отчета 13,14,15, то открываем форму EditCrim Session("sCrimCode") = str2.Text PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType, "EditCrim", "OpenWindow('EditCrim.aspx','EditCrim');", True) Else 'если нет, то форму Edit PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Edit", PageName, True) End If Dim STW As LinkButton = row.FindControl("ВыборСтроки") STW.ForeColor = Drawing.Color.DarkMagenta End Sub Мне проще было бы использовать HyperLink, но с SelectedIndexChanged он не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 14:39 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969skyANAпропущено... +1 Заменили открытие нового окна по ссылке на открытие через регистрацию скрипта на сервере: ScriptManager.RegisterStartupScript. Как-то через одно место это выглядит. Может быть, но я не знаю способ прочитать строку в GridView кроме как так: Protected Sub GridReports_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridReports.SelectedIndexChanged Dim PageName As String Dim row As GridViewRow = GridReports.SelectedRow Dim str1 As Label = row.FindControl("label7") 'код Dim str2 As Label = row.FindControl("label8") 'crimcode Dim str3 As Label = row.FindControl("label3") 'раздел Session("sMainCode") = str1.Text If (Int(str3.Text) = 13 Or Int(str3.Text) = 14 Or Int(str3.Text) = 15) Then - если разделы отчета 13,14,15, то открываем форму EditCrim Session("sCrimCode") = str2.Text PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType, "EditCrim", "OpenWindow('EditCrim.aspx','EditCrim');", True) Else 'если нет, то форму Edit PageName = "OpenWindow('edit.aspx?name=" + Trim(str1.Text) + "','Edit');" ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Edit", PageName, True) End If Dim STW As LinkButton = row.FindControl("ВыборСтроки") STW.ForeColor = Drawing.Color.DarkMagenta End Sub Мне проще было бы использовать HyperLink, но с SelectedIndexChanged он не работает.Не проще ли формировать нужные ссылки до отображения грида, а не при наступлении события GridReports_SelectedIndexChanged? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 14:51 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969, Вам событие GridView.RowDataBound не знакомо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 14:53 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Может циклом по гриду пробежаться, при совпадении условий красить, ну или там жирным выделать Код: c# 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 14:55 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
skyANAКонстантин1969, Вам событие GridView.RowDataBound не знакомо? Попробую сделать так. Должно получиться. Спасибо за подсказку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 15:25 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
skyANAКонстантин1969, Вам событие GridView.RowDataBound не знакомо? Не получилось: e.row.cells(n).NavigeteUrl - не понимает. Можно e.Cells(n).Text ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 16:09 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
FindControl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 16:21 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969skyANAКонстантин1969, Вам событие GridView.RowDataBound не знакомо? Не получилось: e.row.cells(n).NavigeteUrl - не понимает. Можно e.Cells(n).TextХм. Как же Вы дошли до сл. кода: Код: vbnet 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 16:41 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
skyANAКонстантин1969пропущено... Не получилось: e.row.cells(n).NavigeteUrl - не понимает. Можно e.Cells(n).TextХм. Как же Вы дошли до сл. кода: Код: vbnet 1. ? Так пробовал первым делом. Результат тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2013, 21:45 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Константин1969skyANAпропущено... Хм. Как же Вы дошли до сл. кода: Код: vbnet 1. ? Так пробовал первым делом. Результат тот же.Я не телепат, покажите код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2013, 07:51 |
|
||
|
Запоминание просмотренных строк в GridView
|
|||
|---|---|---|---|
|
#18+
Получилось наконец-то. Всем спасибо за помощь! Вот фрагмент: Protected Sub GridReports_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridReports.RowDataBound Try Dim row As GridViewRow = GridReports.SelectedRow If e.Row.RowType = DataControlRowType.DataRow Then Dim Раздел As Label = CType(e.Row.FindControl("Label3"), Label) Dim Кнопка As HyperLink = CType(e.Row.FindControl("HyperLink1"), HyperLink) Dim Код As Label = CType(e.Row.FindControl("Label7"), Label) Dim CrimCode As Label = CType(e.Row.FindControl("Label8"), Label) 'сделать вторую кнопку HyperLink и в зависимости от раздела кнопки выключать If Раздел.Text = "13" Then Кнопка.NavigateUrl = String.Format("~/EditCrim.aspx?name={0}", CrimCode.Text) Else Кнопка.NavigateUrl = String.Format("~/Edit.aspx?name={0}", Код.Text) End If End If Catch ex As System.IO.IOException ' Code that reacts to IOException. Catch ex As InvalidCastException Catch ex As NullReferenceException Catch ex As Exception End Try End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38214180&tid=1358581]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 384ms |

| 0 / 0 |
