vb.net 4.5とTelerik 2017.2.711.45(Q2)を使用しています 私はradgridフィルタ式とパブリック文字列変数を取得しようとしています。しかし、公共の文字列変数(STRINGVAR)EnableViewState=FALSE
でEnableViewStateが値の損失を引き起こしました
は、radgridフィルタ式ががポストバックを通じて維持されない、は持続しません。
私はが持続んradgrid でEnableViewState=TRUE
フィルタ式を設定すると、しかし、それはにSTRINGVARが発生しない持続します。
私がViewStateを理解してから、EnableViewState=TRUE
を設定すると、stringVarがポストバックを超えて持続しなくなるという意味はありません。私はなぜこれが起こっているのか、これを解決するために何ができるのかを知りたいです。
EDIT: 強調表示された行は、ReportTitleに値が存在しないためにエラーがスローされる場所です。ビューステートを使用
Partial Class displayxslgrid
Public ReportTitle As String
Public ReportsDB As reportDataBase
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Page.EnableViewState = True
Reports = New reportDataBase.Global_Functions(System.Web.HttpContext.Current)
End Sub
Protected Sub RadGrid1_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource
Call BindRadGrid1()
End Sub
Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand
Dim strReportTitle As String
Select Case e.CommandName
Case RadGrid.ExportToExcelCommandName, RadGrid.ExportToWordCommandName, RadGrid.ExportToCsvCommandName
strReportTitle = ReportTitle.Trim
End Select
End Sub
Public Sub BindRadGrid1()
Dim strReportTitle As String
Dim dt As DataTable = Nothing
ReportTitle = dt.Rows(0).Item("ReportTitle")
strReportTitle = dt.Rows(0).Item("ReportTitle").ToString
'RadGrid1 Data source gets set here along with other stuff
End Sub
End Class
隠しフィールドはスマートな解決策であり、この時点では私が使用するものだと思っていますが、ビューステートが有効になっていなければ文字列はそのまま残ります。ビューステートを有効にすると、それが永続しないようにする理由は何ですか?その価値を失う可能性のある追加のイベントを発生させますか? – FreakinRocket
妥当な振る舞いであるとは言えませんが、私はなぜそれが頭の上に残っているのかわかりません。問題を示すコードを投稿できますか? – Seano666
編集済み、コードビハインドが追加されました。 – FreakinRocket