我在让我的 PageIndexChanging 事件触发时遇到问题。Viewstate 已关闭,并且我有一个动态数据源,我在 PageInit 事件的每个回发中加载该数据源。
<asp:GridView runat="server"
ID="gvBenefitsList"
AllowPaging="true"
>
.....
<PagerSettings Mode="NumericFirstLast" FirstPageText="<< First" LastPageText="Last >>"
PageButtonCount="5" Position="Bottom" />
</asp:GridView>
索引更改事件
Protected Sub gvBenefitsList_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvBenefitsList.PageIndexChanging
gvBenefitsList.PageIndex = e.NewPageIndex
gvBenefitsList.DataSource = Data
gvBenefitsList.DataBind()
End Sub
每次我们关闭视图状态时,我都必须重新绑定网格。
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Data = getdata()
gvBenefitsList.DataSource = Data
gvBenefitsList.DataBind()
End Sub
哦,Data 是一个 DataSet 属性
Dim m_Data As DataSet
Public Property Data As DataSet
Get
Return m_Data
End Get
Set(value As DataSet)
m_Data = value
End Set
End Property
因此,当单击第 2 页时,init 事件会触发并绑定网格,但不会触发索引更改事件。我已经厌倦了在 init 事件中以编程方式附加处理程序
AddHandler gvBenefitsList.PageIndexChanging, AddressOf gvBenefitsList_PageIndexChanging
但这并没有什么不同。我不确定为什么这不起作用,因为 rowCommand 事件工作正常。这是关闭 Viewstate 的母版页的一部分,我们将隐藏的 Viewstate 变量设置为空字符串以减小页面大小。
<input type="hidden" name="__EVENTTARGET" value="" />
任何想法都会受到欢迎。