You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中ListView单选按钮单选及选中行识别方案问询

在VB.NET ListView中实现单选按钮互选并获取选中行

一、前端模板修改(实现单选互斥)

要让ListView中的单选按钮同一时间只能选中一个,只需给所有RadioButton设置相同的GroupName属性,同时修正你模板里的HTML嵌套错误(第一个<td>里嵌套了其他<td>,会导致布局异常)。修改后的核心代码片段如下:

<ItemTemplate>
    <tr runat="server" id="trItem">
        <td valign="middle" style="white-space: nowrap; text-align:center;">
            <Asp:RadioButton runat="server" ID="rbtnPermit" GroupName="PermitGroup" />
        </td>
        <td valign="middle" style="white-space: nowrap; text-align:center;">
             <%# CheckNull(Eval("PERMIT_TYPE_DESC"))%>
        </td>
        <td valign="middle" style="white-space: nowrap; text-align:center;">
             <%# CheckNull(Eval("PERMIT_TYPE_ID"))%>
        </td>
    </tr>
    <tr runat="server" ID="trMatchRow">                           
    </tr>
</ItemTemplate>

二、后台VB.NET代码(获取选中行)

你可以在触发事件(比如按钮点击)中遍历ListView的Items,定位选中的RadioButton,进而获取对应行的主键或其他数据:

' 示例:按钮点击事件中获取选中行数据
Protected Sub btnGetSelected_Click(sender As Object, e As EventArgs) Handles btnGetSelected.Click
    For Each item As ListViewItem In lsvPermits.Items
        Dim rbtn As RadioButton = DirectCast(item.FindControl("rbtnPermit"), RadioButton)
        If rbtn IsNot Nothing AndAlso rbtn.Checked Then
            ' 通过DataKeys获取主键PERMIT_TYPE_ID
            Dim permitTypeId As Integer = Convert.ToInt32(lsvPermits.DataKeys(item.DataItemIndex).Value)
            ' 也可以直接读取行内控件的值
            Dim permitDesc As String = DirectCast(item.FindControl("这里替换为显示PERMIT_TYPE_DESC的控件ID"), Label).Text
            
            ' 后续业务逻辑处理
            Response.Write($"选中的许可证ID:{permitTypeId},描述:{permitDesc}")
            Exit For ' 单选模式下找到后直接退出循环
        End If
    Next
End Sub

关键说明

  • GroupName是实现单选互斥的核心,同一组的RadioButton强制只能有一个被选中。
  • 使用ListView的DataKeys获取主键值更安全,避免从页面控件读取带来的风险。
  • 提前修正HTML嵌套错误,防止页面布局混乱影响功能交互。

内容的提问来源于stack exchange,提问作者Ann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:17:06