摘要: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
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 Sub01
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
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
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
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
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