使用 VB.NET 在网格中动态创建时,复选框不会出现在 UI 上

问题描述

我对 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 对象并将其直接添加到列中。我希望我理解正确