我有一個包含數據網格的接口。當我將元素添加到數據網格時,我將它添加到作爲我的數據網格的數據源的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