zoukankan      html  css  js  c++  java
  • 使用radion button选择datagrid的行(在datagrid中使用radio buttons) Carlwave


          RadioButton 用来选择单一的选项,这篇文章介绍如何将这一种特性应用到DataGrid控件上。
          首先,我们知道所有在DataGrid中的控件在页面产生后会有一个单一的UniqueID,所以你将RadionButtonlist作为控件直接放到DataGrid中,即使将GroupName设置为相同,但在运行后也会不一样,所以该方法很难实现。也不是说不可以,我看到过有人在模板列中加入
                <ItemTemplate>
                 <input type="radio" id="rdoAction" runat="server" />
                 </ItemTemplate>
    然后用JS+HTTPXML技术不刷新重新整个页面,用JS绑定RadionButton的选中项,这方法也可行,但就是简单的问题被搞的复杂了。

             下面我介绍一种很简单的方法
              我们在DataGrid中创建一个模板列,然后在其中放入一个Label Web Control,在DataGrid的ItemDataBound事件中增加以下代码:
            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
                Dim r As Label
                r = e.Item.FindControl("Label2")
                r.Text = "<input type=radio name='myradiogroup' value=" & e.Item.Cells(1).Text & ">"
            End If
    这样就在这个lable中输出了Radion button,这就使你在同时只能选中一个radion button.
             以上就等于完成了一部分的任务,后面就是要解决如何得到选中行的值。
             在任意一个button中增加事件
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Label3.Text = Request.Form("myradiogroup")
            Dim i As DataGridItem
            For Each i In DataGrid1.Items
                If i.ItemType = ListItemType.AlternatingItem Or i.ItemType = ListItemType.Item Then
                    Dim r As Label
                    r = i.FindControl("Label2")
                    If r.Text.IndexOf(Label3.Text) > 0 Then
                        r.Text = "<input type=radio name='myradiogroup' value=" & i.Cells(1).Text & " checked>"
                    Else
                        r.Text = "<input type=radio name='myradiogroup' value=" & i.Cells(1).Text & ">"
                    End If
                End If
            Next
        End Sub

    这样就能保证选中的RadionButton在pageback后依然选中。
    这个方法极其简单的解决了RadionButton在DataGrid中的使用问题。

    相关代码下载:https://files.cnblogs.com/carlwave/radbuttonindatagrid.rar(VB.net)

  • 相关阅读:
    luogu 1865 数论 线性素数筛法
    洛谷 2921 记忆化搜索 tarjan 基环外向树
    洛谷 1052 dp 状态压缩
    洛谷 1156 dp
    洛谷 1063 dp 区间dp
    洛谷 2409 dp 月赛题目
    洛谷1199 简单博弈 贪心
    洛谷1417 烹调方案 dp 贪心
    洛谷1387 二维dp 不是特别简略的题解 智商题
    2016 10 28考试 dp 乱搞 树状数组
  • 原文地址:https://www.cnblogs.com/Carlwave/p/716598.html
Copyright © 2011-2022 走看看