我已经将类设置为Facade来访问我的应用程序的会话变量。在这个应用程序中,我将特定雇主的整个数据集存储为会话变量。
在其中一个子页面中,我有一个按钮,可以将一行添加到该数据集中存储的现有表格中。
Dim curRow As Data.DataRow = mySession.tWorksiteOtherMeasures.NewRow()
curRow("lngWorksiteID") = getSelectedWorksiteID(getSelectedSiteID())
curRow("strMeasure") = ""
curRow("lngStatusID") = -1
curRow("lngPoints") = -1
mySession.tWorksiteOtherMeasures.Rows.Add(curRow)
该类正在使用以下方法访问该表:
Public Shared ReadOnly Property tWorksiteOtherMeasures() As Data.DataTable
Get
Return dsEmployer.Tables(TWORKSITEOTHERMEASURES_IDX)
End Get
End Property
Public Shared Property dsEmployer() As Data.DataSet
Get
Return CType(HttpContext.Current.Session(DSEMPLOYER_IDX), Data.DataSet)
End Get
Set(ByVal value As Data.DataSet)
HttpContext.Current.Session(DSEMPLOYER_IDX) = value
End Set
End Property
当在代码中添加行时,行计数递增并且行存在。一旦超出该范围,由于按钮包含在updatePanel中,页面将刷新。当发生这种情况时,我再次单击添加按钮,该代码运行后该项的行计数重置为0和1。之前添加的行已消失。
我错过了什么?如果您愿意,可以随意发布其他语言的示例,我恰好在工作中使用VB.NET。 :)
以下是如何从Web服务分配数据集:
Public Shared Sub loadDSEmployer(ByVal strUserId As String)
Dim myService As New someservice.service
mySession.dsEmployer = myService.GetEmployerAndSites(strUserId, isInternal)
End Sub