6

很简单的问题。我很确定我已经正确链接了类、方法、代码隐藏等。网上很多帖子说这与编译和/或 dll/bin 文件有关,但他们的帮助都没有对我有用。

Compiler Error Message: BC30456: 'gvLegs_PageIndexChanging' is not a member of 'ASP.nestedgridview_aspx'.

Source Error:

Line 43:    <asp:Label ID="lblEmpName" runat="server" Text='<%# Eval("Location")%>'></asp:Label>
Line 44:    <asp:Literal runat="server" ID="lit1" Text="</td><tr id='trCollapseGrid' style='display:none' ><td colspan='5'>" />
Line 45:    <asp:GridView ID="gvLegs" AutoGenerateColumns="False" runat="server" EnableViewState="False"
Line 46:    DataKeyNames="EmployeeId" ForeColor="#333333" PageSize="4" AllowPaging="True"
Line 47:    OnPageIndexChanging="gvLegs_PageIndexChanging">
Source File: C:\Users\tstanley\Desktop\NestedVB\NestedVB\NestedGridView.aspx    Line: 45 

嵌套网格视图.aspx

<%@ Page Language="vb" AutoEventWireup="false" codebehind="NestedGridView.aspx.vb" Inherits="NestedVB.NestedGridViewPaging2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

NetedGridView.aspx.vb [后面的代码] ...

 Private Sub gvLegs_PageIndexChanging(sender As Object, e As GridViewPageEventArgs)

如果有人对此有解决方案,它将对我有很大帮助,因此我可以继续....调试实际代码大声笑。

4

1 回答 1

11

gvLegs_PageIndexChanging是私有的,但需要保护或公开。

由于您使用的是 VB.NET,因此您还可以使用handle 子句

Private Sub gvLegs_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) _
    Handles gvLegs.PageIndexChanging
End Sub

编辑:为了清楚起见,您在 ASP.NET 和 VB.NET 中有三个选项来创建事件处理程序:

  1. 以声明方式在 aspx 上
  2. 在带有句柄子句的代码中
  3. 使用AddHandler(主要用于 VB.NET 中的动态控件)

如果您使用选项 1,则事件处理程序必须至少受到保护,因为 aspx 页面继承自代码隐藏类。

如果您使用选项 2,则该方法可以是私有的,但您需要删除 aspx 上的声明性事件处理程序。

于 2012-06-21T21:35:03.133 回答