使用radion button选择datagrid的行(在datagrid中使用radio buttons)
2007-04-17 19:19
351 查看
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中的使用问题。
相关代码下载:http://files.cnblogs.com/carlwave/radbuttonindatagrid.rar(VB.net)
首先,我们知道所有在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中的使用问题。
相关代码下载:http://files.cnblogs.com/carlwave/radbuttonindatagrid.rar(VB.net)
相关文章推荐
- 使用radion button选择datagrid的行(在datagrid中使用radio buttons)
- 使用radion button选择datagrid的行(在datagrid中使用radio buttons)
- WPF中使用DataGrid后,里面的Button的Command不响应的问题
- 使用wpf 的datagrid 对选择的数据操作
- 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能
- 使用JavaScript选择DataGrid行的方法汇总(Select row of DataGrid by JavaScript)
- Silverlight中使用MVVM:DataGrid中触发Button的Click事件
- Silverlight 2.0中关于DataGrid使用CheckBox选择行
- Silverlight中使用MVVM(7):DataGrid中触发Button的Click事件
- Silverlight中使用MVVM(7):DataGrid中触发Button的Click事件
- DataGrid中使用Button操作
- Flex中DataGrid使用列中放Button
- datagrid可编辑表格使用Combobox多选编辑时无法选择、新增时无法保存BUG解决
- [Silverlight]简单实现DataGrid使用CheckBox选择行
- Silverlight中使用DataGrid后,里面的Button的Command不响应的问题
- [Silverlight]简单实现DataGrid使用CheckBox选择行
- 使用tableview的表头button 实现多 cell 的选择
- 颜色选择存储与使用
- easyui 中datagrid的使用方法
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem