问题描述
我对 vb 完全陌生,所以请帮我解决这个问题。
我动态创建了一个复选框,并添加到网格视图中,如下所示,我可以创建一个新列“待批准”,而行必须有复选框,但没有出现。在调试时,我可以看到在“resp.Columns.Add(column)”行中创建了一个新列,但在 UI 中它显示为一个简单的纯文本字段而不是复选框。 请告诉我,用于复选框的控件在“newField.Control = "checkBox" 和 newField.Type = "CHKBOOLEAN" 行中是否正确,请帮助我。
Dim ToAppCol As New CheckBox()
ToAppCol.Name = "toapprove"
ToAppCol.Checked = False
ToAppCol.Enabled = True
ToAppCol.Text = "To Approve"
ToAppCol.Width = "100"
Dim newField As GridFieldInfo
newField.Name = ToAppCol.Name
newField.Label = ToAppCol.Text
newField.Width = ToAppCol.Width
newField.Control = "checkBox"
newField.Type = "CHKBOOLEAN"
newField.Visible = True
'newField.Order = 1 ' though order gave as 1,still didnot work.
GrdData.Fields.Add(newField)
For Each ss As GridFieldInfo In GrdData.Fields
If (ss.Visible) Then
Dim column As New Column
column.id = ss.Name
column.title = ss.Label
column.width = ss.Width
column.control = ss.Control
column.dataType = ss.Type
resp.Columns.Add(column)
End If
Next
问候
解决方法
我认为这个问题唯一可能的解决方案是 GridFieldInfo 默认显示一个文本字段。 我对 asmx 并不实用,但是,如果您的框架中有它,您可以使用 DataGridViewCheckBoxCell 对象并将其直接添加到列中。我希望我理解正确