使用vb.net 4.5和Telerik 2017.2.711.45(Q2) 我想获得radgrid过滤器表达式和一个公共字符串变量来持续跨回发。EnableViewState造成价值损失
随着EnableViewState=FALSE
,radgrid控件过滤器表达式不通过回传存在下去,但公共字符串变量(STRINGVAR)确实坚持。
当我设置EnableViewState=TRUE
在radgrid控件过滤器表达式做存在下去,但它会导致STRINGVAR到不坚持。
从我对ViewState的理解来看,设置EnableViewState=TRUE
会导致stringVar不能在回传期间持续存在是没有意义的。我很想知道为什么会发生这种情况,我可以做些什么来解决这个问题。
编辑: 由于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