利用Session纪录datagrid模板列中CheckBox的状态

原创 2003年09月26日 22:56:00

    

DataGrid 的模板列中加入CheckBox ,如果对DataGrid设置分页,前一页已经选中的CheckBox在回到原页时,CheckBox的状态会变为初始状态。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       如果想保存checkbox的状态,则可以用Session保存,我是这样实现的:

      1、首先,建立DataGrid.

         <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 12px; POSITION: absolute; TOP: 88px" runat="server" AllowPaging="True" Width="416px" Height="248px">

                   <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>

                   <ItemStyle Font-Size="12px" Font-Names="宋体"></ItemStyle>

                   <HeaderStyle Font-Size="12px" Font-Names="宋体" BackColor="#00CCFF"></HeaderStyle>

                   <FooterStyle HorizontalAlign="Center"></FooterStyle>

                   <Columns>

                        <asp:TemplateColumn>

                            <ItemTemplate>

                                 <asp:checkbox id="CheckBox1" runat="server"></asp:checkbox>

                            </ItemTemplate>

                        </asp:TemplateColumn>

                   </Columns>

              </asp:datagrid>

 

             2、在Global.asax文件中,Session_Start事件中建立Session

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
                ' 在会话启动时激发
            Dim checks As Boolean() = New Boolean(10000) {}
            Dim i As Integer
            For i = 0 To 10000
                checks(i) = False
            Next
           Session.Add("CheckBoxchecks", checks)
        End Sub

3.在DataGrid的PageIndexChanged事件中:

 Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged

        Dim count As Integer

        Dim cnn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/UserLog.mdb")

        Dim da As New OleDb.OleDbDataAdapter("select * from mm", cnn)

 

        da.Fill(dst)

 

        count = dst.Tables(0).Rows.Count   'DataGrid中的记录总数;

        Dim check As Boolean()

        check = Me.Session("checkboxchecks")  'check()是记录checkbox状态的数组,用session保存。

                   Dim j As Integer

            For j = 0 To DataGrid1.PageSize - 1

                Dim Che As CheckBox = DataGrid1.Items(j).Cells(0).FindControl("CheckBox1")

                If Not Che Is Nothing Then

                    If Che.Checked = True Then

                        check(DataGrid1.CurrentPageIndex * DataGrid1.PageSize + j) = True

                    Else

                        check(DataGrid1.CurrentPageIndex * DataGrid1.PageSize + j) = False

                    End If

                End If

            Next

        DataGrid1.CurrentPageIndex = e.NewPageIndex

        Dim ds As New DataSet()

        da.Fill(ds, "a")

        DataGrid1.DataSource = ds

        DataGrid1.DataBind()

            Dim i As Integer

            For i = 0 To DataGrid1.PageSize - 1

                Dim Cx2 As CheckBox = DataGrid1.Items(i).Cells(0).FindControl("CheckBox1")

                If check(DataGrid1.CurrentPageIndex * DataGrid1.PageSize + i) = True Then

                    Cx2.Checked = True

                Else

                    Cx2.Checked = False

                End If

            Next

         

         End Sub

          这样就可以利用Session实现checkbox翻页后的状态保存问题.

WPF中DataGrid 添加checkbox实现全选、多选

在机房合作项目中,有一个窗体是这样子的               简单介绍一下:就是通过查询出正在上机的学生,可以通过勾选前面的checkbox,选中该行,然后可以进行部分下机和全部下机。如...
  • kwy15732621629
  • kwy15732621629
  • 2016年07月26日 14:41
  • 6781

Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能 几种实现方法

 在DataGrid中实现列中加入CheckBox这种用法很常见,项目中也经常会用到,在网上搜了下基本就是实现itemRender.但是 感觉网上提供的实现上好些地方都是多余的 经过自己的改造感...
  • u011589095
  • u011589095
  • 2014年08月14日 14:53
  • 1096

WPF DataGrid表头Checkbox 全选与全反选

WPF 在使用DataGrid展示数据的时候经常会使用到checkbox列,特别是id列     例如下面这种效果:          WPF 要实现DataGrid checkbox全选与全反选,方...
  • aojiancc2
  • aojiancc2
  • 2017年02月09日 16:12
  • 2627

easyui 分页 保存checkbox的 选中状态,操作选中记录。

2014-2-4阅读470 评论0 1、首先设置datagrid属性的idField主键,这里假如为id。 2、建立一个全局的javascript数组var checkedItems = []...
  • jetol123
  • jetol123
  • 2015年06月03日 21:15
  • 1555

新手学EasyUI(七)----DataGrid CheckBox 动态选中

先上一张图:下面说一下具体实现的功能是什么样的。页面首次加载的时候,右面的表格中的CheckBox都处于未选中的状态,现在是这么设计的,时段只有这么8条数据在一张单独的表里面。用户和时段的关系放在另一...
  • u010853701
  • u010853701
  • 2015年11月10日 21:52
  • 2994

Flex中DataGrid中添加一列复选框(CheckBox)

xmlns:s="library://ns.adobe.com/flex/spark"     xmlns:mx="library://ns.adobe.com/flex/mx"     crea...
  • hanxiaoyu1988
  • hanxiaoyu1988
  • 2013年03月12日 11:38
  • 1245

EasyUI多选,easyui datagrid 分页并保持checkbox选中状态

最近在使用EasyUI制作一个多选的功能,查找了很多资料,有几个说的不是很全,所以就尝试去写,今天终于弄出来了,就把完整的代码 贴出来,部门也是参照前人所说: 第一步:JSP页面 ①在data-opt...
  • u011809238
  • u011809238
  • 2017年04月11日 15:38
  • 1420

WPF中DataGrid实现全选

方法一:使用模板列 前台代码如下 后台实现如下  DataGridTemplateColumn templeColum...
  • asciil
  • asciil
  • 2016年11月22日 21:18
  • 1378

WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)

check datagrid wpf
  • qq_31971935
  • qq_31971935
  • 2015年11月02日 10:59
  • 3367

easyui datagrid取消点击行的选中事件

easyui datagrid取消点击行的选中事件项目中需要取消点击行的选中事,在网上发现已有的解决办法,原文地址如下: http://www.mamicode.com/info-detail-51...
  • alleged
  • alleged
  • 2016年12月30日 14:06
  • 3918
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Session纪录datagrid模板列中CheckBox的状态
举报原因:
原因补充:

(最多只允许输入30个字)