Могу ли я загрузить словарь при загрузке страницы и использовать его где-нибудь еще? - PullRequest
0 голосов
/ 06 июня 2018

В графе строк вида сетки у меня есть следующая инструкция case.Я хотел бы загрузить эти классы CSS из базы данных один раз в словарь.Могу ли я сделать это при загрузке страницы, а затем использовать его, когда сетка привязана?Каждая строка имеет 30-60 столбцов.

If i > 7 Then
                Select Case e.Row.Cells(i).Text
                    Case "On"
                    'e.Row.Cells(i).CssClass = "bg-primary"
                    Case "TVL"
                        e.Row.Cells(i).CssClass = "bg-success"
                    Case "PTO"
                        e.Row.Cells(i).CssClass = "bg-dark text-white"
                    Case "Off"
                        e.Row.Cells(i).CssClass = "bg-warning"
                    Case "Rec"
                        e.Row.Cells(i).CssClass = "bg-secondary"
                    Case "PT"
                        e.Row.Cells(i).CssClass = "bg-info"
                End Select

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

я могу использовать событие RowDataBound

Событие RowDataBound возникает, когда строка данных (представленная объектом GridViewRow) привязана к данным в элементе управления GridView

Protected Sub GridviewName_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridviewName.RowDataBound
       For i As Integer = 0 To GridView1.Rows.Count
            If i > 7 Then
                Select Case e.Row.Cells(i).Text
                    Case "On"
                    'e.Row.Cells(i).CssClass = "bg-primary"
                    Case "TVL"
                        e.Row.Cells(i).CssClass = "bg-success"
                    Case "PTO"
                        e.Row.Cells(i).CssClass = "bg-dark text-white"
                    Case "Off"
                        e.Row.Cells(i).CssClass = "bg-warning"
                    Case "Rec"
                        e.Row.Cells(i).CssClass = "bg-secondary"
                    Case "PT"
                        e.Row.Cells(i).CssClass = "bg-info"
                End Select
           End If
        Next
End Sub
0 голосов
/ 06 июня 2018

Да, вы можете загрузить их в словарь и сохранить их в переменную сеанса и повторно использовать это.

// C#
Session[myStyles] = myDictionary;

// use them
e.Row.Cells(i).CssClass = (string)Session[myStyles][i]; // access the value appropriately.

Вы также можете использовать переменную страницы.

Dictionary _myDictionary;

Page_Load...
{
    if(!IsPostback)
        _myDictionary = // set _myDictionary.
}

Event/Method
{
    // use it
    var x = _myDictionary[i]... ;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...