/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/usercontrols/multiselect.ascx.vb
158 строк
5 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports System.Web.Script.Serialization Partial Class UserControls_multiselect Inherits Web.UI.UserControl Public allChecked As Boolean = True Public Property DataSource As Data.DataTable Set(value As Data.DataTable) _data = value End Set Get Return _data End Get End Property Public Property ValueField As String Set(value As String) _valueField = value End Set Get Return _valueField End Get End Property Public Property TextField As String Set(value As String) _textField = value End Set Get Return _textField End Get End Property Public Property FieldName As String Set(value As String) hfFieldName.Value = value End Set Get Return hfFieldName.Value End Get End Property Public Property Caption As String Set(value As String) lblCaption.Text = value End Set Get Return lblCaption.Text End Get End Property Public Property Values As Hashtable Set(value As Hashtable) _items = value End Set Get Return _items End Get End Property Public ReadOnly Property Elements As Hashtable Get Return GetElements(True) End Get End Property Public ReadOnly Property SavedState As Hashtable Get Try Dim serializer As New JavaScriptSerializer() Return serializer.Deserialize(Of Hashtable)(hfCheckedItems.Value) Catch ex As Exception Return Nothing End Try End Get End Property Public ReadOnly Property SavedStateRaw As String Get Return hfCheckedItems.Value End Get End Property Private _data As Data.DataTable Protected _valueField As String Protected _textField As String Protected _items As New Hashtable Private Sub UserControls_multiselect_Load(sender As Object, e As EventArgs) Handles Me.Load End Sub Private Sub UserControls_multiselect_DataBinding(sender As Object, e As EventArgs) Handles Me.DataBinding If Caption = "" Then lblCaption.Text = _textField End If Repeater1.DataSource = _data Repeater1.DataBind() Try If Not IsNothing(_items("ALL")) Then allChecked = _items("ALL") If Not allChecked Then lblCaption.BackColor = Drawing.Color.Coral Else lblCaption.BackColor = Drawing.Color.Transparent End If End If Catch ex As Exception End Try 'Try ' For Each chkF As DictionaryEntry In _items ' For Each i As RepeaterItem In Repeater1.Items ' Try ' Dim chk As CheckBox = DirectCast((i.Controls(1)), CheckBox) ' If chk.Text = chkF.Key Then ' chk.Checked = chkF.Value ' End If ' Catch ex As Exception ' End Try ' Next ' Next 'Catch ex As Exception 'End Try End Sub Public Sub SetElements() Try For Each chkF As DictionaryEntry In _items For Each i As RepeaterItem In Repeater1.Items Try Dim chk As CheckBox = DirectCast((i.Controls(1)), CheckBox) If chk.Text = chkF.Key Then chk.Checked = chkF.Value End If Catch ex As Exception End Try Next Next Catch ex As Exception End Try End Sub Public Function GetElements(Optional allElements As Boolean = False) As Hashtable Dim result As New Hashtable result.Clear() For Each i As RepeaterItem In Repeater1.Items Try Dim chk As CheckBox = DirectCast((i.Controls(1)), System.Web.UI.WebControls.CheckBox) If Not allElements Then If chk.Checked Then result.Add(chk.Text, chk.Checked) End If Else result.Add(chk.Text, chk.Checked) End If Catch ex As Exception End Try Next Return result End Function End Class