Asp.net 从asp中继器获取正确的控件

Asp.net 从asp中继器获取正确的控件,asp.net,vb.net,Asp.net,Vb.net,所以我现在在ASP.NET和VB.NET中工作。以下是我显示视图的方式: <tr> <td colspan="2">&nbsp; <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0"> <TR> <TD> <a

所以我现在在ASP.NET和VB.NET中工作。以下是我显示视图的方式:

<tr>
    <td colspan="2">&nbsp;
        <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0">
            <TR>
                <TD>
                    <asp:repeater id="repVKM" runat="server">
                        <ItemTemplate>
                            <br>
                            <input id="radioBtnID" type="radio" name="radVKM" value='<%# DataBinder.Eval(container.Dataitem, "BJBVKMID") %>'>
                            <%# DataBinder.Eval(Container.DataItem, "BJBVKM") %>
                        </ItemTemplate>
                    </asp:repeater>
                </TD>
            </TR>
        </TABLE>
    </td>
</tr>  
下面是我如何查看哪个单选按钮被选中的:

Dim voorkeurMateries = repVKM.Items
Dim selectieVKM As String
For Each item As RepeaterItem In voorkeurMateries
    Dim rb As RadioButton
    rb = item.FindControl("radioBtnID")
    If rb.Checked Then
         selectieVKM = rb.Text
         Exit For
    End If
Next  

它给出了一个Nothing错误,比如rb值上的null错误,因为他似乎找不到正确的控件?我对VB.NET和ASP.NET不太了解,所以我似乎找不到解决方案。

您的代码有两个问题。首先,RadioButton上没有runat=server标记,因此永远无法在代码隐藏中检测到它

第二,您正在寻找RadioButton控件,而在HTML中,您有一个普通的HTML收音机

因此,将runat=server添加到现有的单选按钮

<input id="radioBtnID" runat="server" type="radio" name="radVKM">
或者让它成为中继器中真正的aspnet控件。那么循环中的代码是正确的

<asp:RadioButton ID="RadioButton1" runat="server" Text='<%# Eval("radVKM") %>' />

您使用的是VB.NET而不是VB6,这是ASP.NET而不是ASP
Dim radio As HtmlInputRadioButton = CType(item.FindControl("radioBtnID"),HtmlInputRadioButton)
<asp:RadioButton ID="RadioButton1" runat="server" Text='<%# Eval("radVKM") %>' />