我有一个包含数据网格的接口。当我将元素添加到数据网格时,我将它添加到作为我的数据网格的数据源的List属性中。在这里我的代码隐藏列表的声明:如何避免使用会话
Public Property listeSpecialite() As List(Of RECSPECIALITECONCOURS)
Get
Return Session("specialite")
End Get
Set(ByVal value As List(Of RECSPECIALITECONCOURS))
Session("specialite") = value
End Set
End Property
,这里是当我添加元素数据网格代码:
Protected Sub gridsecialite_ItemCommand(source As Object, e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles gridsecialite.ItemCommand
If e.CommandName = "Insert" Then
Dim dropSpecialite As DropDownList = CType(e.Item.FindControl("txtSpecialite_Footer"), DropDownList)
Dim specialite As New RECSPECIALITECONCOURS
specialite.CODESPECIALITE = IGS.ChercherParIdInt(Of GENSPECIALITE)(CInt(dropSpecialite.SelectedValue))
listeSpecialite.Add(specialite)
gridsecialite.DataSource = listeSpecialite
gridsecialite.DataBind()
End If
End Sub
,并在用户点击保存,我保存所有元素在我的列表中到数据库。
如何在不使用会话的情况下保存列表的元素。 (我的老板说在会话性能原因中存储元素列表不好)
是jlvaquero先生,这是一个替代了,但是你注意,有对性能产生影响,当我们处理数据的双向名单(列表中超过1000个元素),因为我认为服务器和客户端在回发上交换元素? – ucef
是的。我对此很清楚。在我自己的文章中,我写道:“另外,默认情况下,viewstate以隐藏字段发送到客户端,这增加了带宽。”您可以尝试在服务器中使用gzip http响应以最小化带宽,也可以将viewstate存储在服务器端。关键是没有银弹。选择一种方法并处理缺点以最小化它们。 – jlvaquero
忘了说,客户也可以gzip发布请求... – jlvaquero