0
我正在使用infragistics構建的自定義Webgrid。我可以遍歷行以進入複選框,並將作爲檢查值的框存儲到會話中。複選框保存在跨多頁的會話中的值
這就是現在發生的事情。 在任何頁面上,我點擊四個複選框將狀態更改爲true。 當我轉到下一頁並返回到上一頁時,我有一種方法可以根據值重新填充複選框,並將這些框設置爲true。該方法的工作原理
問題是,當我在任何頁面上點擊我的框,轉到下一頁單擊其他框,返回到上一頁框未選中。但是,如果我進入下一頁,我的箱子會被檢查。
期望的幫助是將多個頁面中的複選框選中的值保存到會話中。
Public Sub Check_Clicked(sender As Object, e As EventArgs)
Dim data As New List(Of String)
Dim loadnumbers As String = ""
Const comma As Char = (",")
Dim dp As String
Try
If Session("data") IsNot Nothing Then
For Each row As UltraGridRow In iuwgLoadGrid.Rows
Dim myCellItem = GetGridCell(row, row.Index, "SELECTLOAD")
Dim myCheckBox = DirectCast(myCellItem.FindControl("chkSelectLoad"), CheckBox)
If (myCheckBox.Checked = True) Then
loadnumbers = loadnumbers & CType(GetGridCell(row, "lgh_number").Value, Integer)
Dim val As String = Session("data")
Dim arrVal As String() = val.Split(",")
For Each s As String In arrVal
If Not data.Contains(s) Then
data.Add(s)
End If
Session("data") = data
Next
End If
Next
Else
For Each row As UltraGridRow In iuwgLoadGrid.Rows
Dim myCellItem = GetGridCell(row, row.Index, "SELECTLOAD")
Dim myCheckBox = DirectCast(myCellItem.FindControl("chkSelectLoad"), CheckBox)
If (myCheckBox.Checked = True) Then
loadnumbers = loadnumbers & CType(GetGridCell(row, "lgh_number").Value, Integer) & comma
Session("data") = loadnumbers
End If
Next
End If
Catch ex As Exception
Master.ShowMsg("", Message.Type.Error)
End Try
End Sub
確定修改後的代碼本
Public Sub Check_Clicked(sender As Object, e As EventArgs)
Dim loadnumbers As String = ""
Const comma As Char = (",")
Dim a As String
Try
If Session("data") IsNot Nothing Then
For Each row As UltraGridRow In iuwgLoadGrid.Rows
Dim myCellItem = GetGridCell(row, row.Index, "SELECTLOAD")
Dim myCheckBox = DirectCast(myCellItem.FindControl("chkSelectLoad"), CheckBox)
loadnumbers = loadnumbers & CType(GetGridCell(row, "lgh_number").Value, Integer)
If (myCheckBox.Checked = True) Then
If Not Session("data").Contains(loadnumbers) Then
Session.Add(loadnumbers, ",")
a = Session("data")
End If
End If
Next
Else
For Each row As UltraGridRow In iuwgLoadGrid.Rows
Dim myCellItem = GetGridCell(row, row.Index, "SELECTLOAD")
Dim myCheckBox = DirectCast(myCellItem.FindControl("chkSelectLoad"), CheckBox)
Dim data As String
If (myCheckBox.Checked = True) Then
data = data & CType(GetGridCell(row, "lgh_number").Value, Integer) & comma
Session("data") = data
End If
Next
End If
Catch ex As Exception
Master.ShowMsg("", Message.Type.Error)
End Try
End Sub
修改你的代碼,你把會議(「數據」),有時爲字符串,其他時間列表 - 而且是個體值的列表。 –
確定已修改,我將Dim val As String = Session(「data」)刪除 Dim arrVal As String()= val.Split(「,」) 對於每個s作爲字符串在arrVal中 If Not data.Contains(s)然後 data.Add(S) 結束如果 會議( 「數據」)=數據 接下來切換到這一點,如果不data.Contains(loadnumbers)然後 data.Add(loadnumbers) 結束如果 – user2792158
我解決我的代碼和更改所以Session是一個列表。謝謝解決問題,我會發布新的代碼。如果需要進行任何更改以改進它,請告訴我。 – user2792158