将动态单选按钮对象添加到 GridView

Add dynamic radio button object to GridView

我需要将我根据 if 条件创建的自定义单选按钮控件添加到我的 GridView。我的单选按钮将根据此条件启用或禁用,并将显示文本 也改变了。

我想知道如何将单选按钮对象而不是字符串添加到我的数据行中 dt.Columns.Add("FirstName")

<telerik:RadGrid runat="server" ID="grd1" OnNeedDataSource="grd1_NeedDataSource"> 
<MasterTableView AutoGenerateColumns="False">
<Columns>
     <telerik:GridTemplateColumn HeaderText="Radiobutton header" UniqueName="col1">
      <ItemTemplate>
       <asp:RadioButton ID="rbType" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "rbEnableorDisable")%>' />
       </ItemTemplate>
       </telerik:GridTemplateColumn>

       <telerik:GridTemplateColumn HeaderText="FirstName header" UniqueName="col2">
       <ItemTemplate>
       <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Name")%>' runat="server" />
       </ItemTemplate>
       </telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>

代码隐藏

Private dt As DataTable
Private dr As DataRow

dt= New DataTable
dt.Columns.Add("rbEnableorDisable")
dt.Columns.Add("FirstName")

Dim rb As RadioButton
rb = New RadioButton

For each item in itemlist //some data iteration declared elsewhere
 dr = dt.NewRow()
   If (Condition)
      rb.Text = "Should be Disabled"
      rb.Enabled = False
   Else
      rb.Text = "Should be Enabled"
      rb.Enabled = True
   End if

   dr.Item("FirstName") = item.FirstName
   dr.Item("rbEnableOrDisable") = rb//?Code for inserting a radio button object
   dt.Rows.Add(dr)
Next

    With grd1
        .DataSource = dt
        .DataBind()
    End With

到目前为止这段代码 如果我有 dr.Item("rbEnableOrDisable") = rb.Text.

,我只能显示单选按钮文本

我需要显示整个单选按钮对象(显示文本以及是否启用或禁用)

我试过了

LocationData.Columns.Add(新建数据列("rbType", GetType(RadioButton)))

但我似乎需要附加到 ItemTemplate

还尝试添加整个动态列:

grd1.Controls.Add(rb)

您需要在您的 DataItem 中添加一些内容来启用或禁用单选按钮并将其分配给已启用 属性。

启用='<%# DataBinder.Eval(Container.DataItem, "booleanData")%>'

如果您需要选中或取消选中 RadioButton,请使用 Checked 属性。