ASP.NET GRIDVIEW含CHECKBOX換頁作法

摘要:ASP.NET GRIDVIEW含CHECKBOX換頁作法

01 Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs)
02         If Me.radPrint.SelectedValue = "" Then Exit Sub
03         If Get_Choice() Then
04             If ar.Count = 0 Then
05                 Exit Sub
06             Else
07                 For Each selectItem As String In ar
08                     Me.hidSelect.Value += "," + selectItem
09                 Next
10                 Session.Add("PRINT", Me.hidSelect.Value.Remove(0, 1))
11             End If
12             If Me.radPrint.SelectedValue = 0 Then
13                 Me.Response.Redirect("SPrint_List.aspx")
14             ElseIf Me.radPrint.SelectedValue = 1 Then
15                 Me.Response.Redirect("SPrint_ALL.aspx")
16             End If
17         Else
18             clsCommon.Alert("請先勾選欲列印項目!", Me.Page)
19         End If
20     End Sub
01
02     Dim ar As New ArrayList
03
04     Property _ar()
05         Get
06             Return ar
07         End Get
08         Set(ByVal value)
09             ar.AddRange(value)
10         End Set
11     End Property
12
13     Private Sub Page_LoadExtracted()
14         If Session("GetPrint") Is Nothing Then
15             Session.Add("GetPrint", _ar)
16         Else
17             If CType(Session("GetPrint"), ArrayList).Count > 0 Then
18                 _ar = Session("GetPrint")
19             End If
20         End If
21     End Sub

 

01 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
02
03         If Not Me.IsPostBack Then
04             If Trim(Session("USER_ID") & "") = "" OrElse Trim(Session("USER_ID") & "") = "Admin" Then
05                 ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.GetType, "Login", "alert('請先登入,謝謝!');location.href='../Default.aspx';", True)
06                 Exit Sub
07             End If
08             Me.Session("GetPrint") = Nothing
09             Page_LoadExtracted()
10             SetDrop()
11             Query()
12         End If
13
14     End Sub

 

1 Protected Sub gvData_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
2         Get_Choice()
3         Query()
4
5         Me.gvData.PageIndex = e.NewPageIndex
6         Me.gvData.DataBind()
7     End Sub

 

01 Private Function Get_Choice() As Boolean
02         Dim Print As String = ""
03
04         '將未勾選的資料刪除
05         '只傳有勾選的資料至列印頁
06         Me.Page_LoadExtracted()
07
08         For i As Integer = 0 To Me.gvData.Rows.Count - 1
09             If Me.gvData.Rows(i).RowType = DataControlRowType.DataRow Then
10                 If CType(Me.gvData.Rows(i).FindControl("chkSID"), CheckBox).Checked Then
11                     If Not ar.Contains(Me.gvData.Rows(i).Cells(1).Text) Then
12                         ar.Add(Me.gvData.Rows(i).Cells(1).Text)
13                     End If
14                 Else
15                     If ar.Contains(Me.gvData.Rows(i).Cells(1).Text) Then
16                         ar.Remove(Me.gvData.Rows(i).Cells(1).Text)
17                     End If
18                 End If
19             End If
20         Next
21
22         If ar.Count = 0 Then
23             Return False
24         Else
25             Me.Session("GetPrint") = ar
26             Me.hidSelect.Value = ""
27             Return True
28         End If
29
30     End Function