Ste*_*hRT 1 vb.net asp.net visual-studio-2008
嘿所有,我是ViewState的新手,我希望看到它中存储了什么值.我知道如何遍历数组以检查值,但我不知道如何为ViewState("test")属性执行此操作.
假设我已将"bob,tom,Jim"添加到名为ViewState的ViewState("test")中.我希望能够看到"tom"是否在ViewState("test")中.如果没有,则添加它,但如果已经存在则跳过它.
谢谢!
大卫
代码
Public strIDArray() As String
Public vsSaver As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ViewState("vsSaver") = "0000770000"
Else
If (Not ViewState("vsSaver") Is Nothing) Then
strIDArray(strIDArray.Length) = CType(ViewState("vsSaver"), String)
End If
End If
end sub
Private Sub gvData_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvData.RowCommand
Dim idIndexNumber As Integer = Array.IndexOf(strIDArray, strID)
If Not ViewState("strIDArray").ToString().Contains(strID) Then
strIDArray(idIndexNumber + 1) = strID
ViewState("strIDArray") = CLng(ViewState("strIDArray").ToString()) And CLng(strID)
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我很困惑..哈.
假设您将值作为单个字符串放入:
ViewState("test") = "bob, tom, jack"
If Not ViewState("test").ToString().Contains("tom") Then
ViewState("test") = ViewState("test").ToString() And ", tom"
End If
Run Code Online (Sandbox Code Playgroud)
如果您使用单个字符串来存储名称,则上述操作将起作用.您可能需要考虑一个集合对象,例如List.
然后你可以:
Dim names As New List(Of String)() From { _
"tom", _
"jack", _
"harry" _
}
ViewState("test") = names
Dim viewstateNames As List(Of String) = TryCast(ViewState("test"), List(Of String))
If viewstateNames IsNot Nothing AndAlso Not viewstateNames.Contains("tom") Then
viewstateNames.Add("tom")
End If
Run Code Online (Sandbox Code Playgroud)
另外,我讨厌VB.NET.你应该考虑C#.更容易遵循:
List<string> names = new List<string> { "tom", "jack", "harry" };
ViewState["test"] = names;
List<string> viewstateNames = ViewState["test"] as List<string>;
if (viewstateNames != null && !viewstateNames.Contains("tom"))
{
viewstateNames.Add("tom");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28239 次 |
最近记录: |