Я пытаюсь смешивать столбец в datagridview с двумя типами управления (флажок & TextBox), данные поступают из хранимой процедуры, которую я также пишу так У меня небольшая гибкость.DataGridView, Изменить ячейку типизированного столбца на другой тип
в хранимой процедуре Я возвращаю пустой столбец, чтобы действовать как столбец «Выбор» в GridView, но я сталкиваюсь с проблемами при попытке преобразовать ячейки в другой тип на основе критериев ......
Я держу проблема с типами данных при преобразовании между типами управления, я попытался alsort из Diferent способов преобразовать значение первого, контролирует первый, и т.д. и т.п., но ничего не работает 100% .....
в настоящее время у меня есть SP, возвращающий строку «False» в столбце, а затем используя это с критериями для создания флажка ..... он отлично работает, но значение остается sstring даже после преобразования его в Boolean, тип данных также булево на флажке, но значение «Строка» ..... это зашло над моей головой, и теперь я теряюсь ......
NewCntrl2 = New DataGridViewCheckBoxCell
NewCntrl2.Value = Convert.ToBoolean(DGV.Cells(0).Value)
NewCntrl2.ValueType = GetType(System.Boolean)
DGV.Cells(0) = NewCntrl2
это код преобразуя textboxcolumncell к CheckBox клетки
любые идеи, почему значение флажка по-прежнему строка («False») ...
Проблема с тем, что его делать теперь, когда я обрабатывать событие cellclick я не могу проверить или снимите флажок, используя метод «Не значение»
---- EDIT ----
Это вспомогательное устройство, которое я использую, оно создает несколько различных типов элементов управления.
Public Sub posted_CreateControls()
Dim Cell_0 As String
Dim Cell_1 As String
Dim Cell_2 As String
Dim NewCntrl As DataGridViewButtonCell
Dim NewCntrl2 As DataGridViewCheckBoxCell
For Each Rw As DataGridViewRow In dgvPosted.Rows
With Rw
Cell_0 = .Cells(1).Value.ToString
Cell_1 = .Cells(2).Value.ToString
Cell_2 = .Cells(3).Value.ToString
'this column starts with a value 'False' returned by the SP,
'we dont want checkboxes on all rows and using false string was the only method
'i could find to easily do this
'if both assign and unassign id are present then we need a checkbox
Select Case Cell_0
Case String.Empty
.Cells(0).Value = String.Empty
Case Else
If Not Cell_1 = String.Empty Then
NewCntrl2 = New DataGridViewCheckBoxCell
NewCntrl2.Value = Convert.ToBoolean(.Cells(0).Value)
NewCntrl2.ValueType = GetType(System.Boolean)
.Cells(0) = NewCntrl2
Else
.Cells(0).Value = String.Empty
End If
End Select
'Create an Assign button for each row in columnindex 0(Assign) if ColumnIndex(2)(Edit) contains M, L or I
Select Case Cell_2
Case "M", "L", "I", "P"
NewCntrl = New DataGridViewButtonCell
.Cells(1) = NewCntrl
NewCntrl.Tag = Cell_0
NewCntrl.Value = "Assign"
End Select
'Create an UnAssign button in columnindex 1(UnAssign) if the value of columnindex 1(Unassign) is not empty
If Not Cell_1 = vbNullString Then
NewCntrl = New DataGridViewButtonCell
.Cells(2) = NewCntrl
NewCntrl.Tag = Cell_1
NewCntrl.Value = "UnAssign"
End If
'Create an Edit button on columnindex 2(Edit) if ColumnIndex 2(Edit) is not M, L or empty string
Select Case Cell_2
Case "M", "L", "P", vbNullString
'Do Nothing
Case Else
NewCntrl = New DataGridViewButtonCell
.Cells(3) = NewCntrl
NewCntrl.Tag = Cell_2
NewCntrl.Value = "Edit"
End Select
End With
Next
NewCntrl = Nothing
End Sub
Это создает флажки, как я хочу их, но значения остаются в виде строки, которая вызывает событие cell.click на неудачу, потому что я пытаюсь установить значение флажка, чтобы верно и .Value = нет. значение часть терпит неудачу, потому что по какой-то причине значение остается строка, но тип флажков значение фактически Boolean .....
Я также пробовал это, но я столкнулся с проблемой, когда мне нужно удалить флажки из определенных строк ...... не все строки должны иметь их, и я попробовал разворот .. изменение ячейки флажка в ячейки текстового поля, но cann ' t найти способ предотвратить возникшую ошибку FormatValue. однако я не пробовал это с кодом, который я дал выше ... Я попробую его и посмотрю, работает ли он –
. Я все еще иду с подходом к столбцу, обрабатываю событие cellformatting, чтобы отключить/включить любой из флажков/изменить стиль ячейки в обычную ячейку текстового поля. – FloatingKiwi
Мне нужно, чтобы ячейки были полностью пустыми, это не стандартная таблица, которая заполнена здесь, и имеет пустые строки для разделения родительских строк, и каждая родительская строка имеет несколько дочерних строк, а также дочерние строки. однако не обращайте внимания на сложный характер таблицы, моя единственная проблема в том, что когда я меняю элемент управления ячейки на другой тип, его типы значений (хотя и изменяются) все еще сохраняют свое старое значение .... как можно ввести логическое значение, содержащее значение String? ....... никаких ошибок вообще, я думаю, что я что-то пропустил. –