asp.net 选定索引更改了方法位置



在 GridView 中,为什么我必须在同一页面而不是 C# 文件中定义 select 方法?

例如,在索引.aspx中,我有

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="GridViewApp.index" %>     
<asp:GridView ID="GridView1" runat="server" 
          onselectedindexchanged="GridView1_SelectedIndexChanged" 
        DataSourceID="SqlDataSource2" AllowPaging="True" AllowSorting="True">
            <Columns>
                <asp:CommandField ShowSelectButton="True"  />
            </Columns>
        </asp:GridView>

GridView1_SelectedIndexChanged,此方法必须在索引中定义.aspx而不是索引中.aspx.cs ?

错误消息是

Compiler Error Message: CS1061: 'ASP.index_aspx' does not contain a definition for 'GridView1_SelectedIndexChanged' and no extension method 'GridView1_SelectedIndexChanged' accepting a first argument of type 'ASP.index_aspx' could be found (are you missing a using directive or an assembly reference?)

更新:解决。清理项目后,重新生成它。它现在有效。构建/调试项目的正确方法是什么?如何清理缓存?

感谢您的帮助。

> 需要在包含GridView1的页面上定义方法GridView1_SelectedIndexChanged,并确保至少将其声明为protected

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
   //do magic
}

你定义了隐藏的代码吗?您确定正在使用它吗?在 aspx 页的顶部,应该有一个如下所示的页面指令:

<%@ Page Language="C#" AutoEventWireup="True" Inherits="The Class Name in index.aspx.cs" Codebehind="index.aspx.cs" %>

设置代码隐藏并确定正在使用代码后,需要为 GridView 上触发的 SelectedIndexChanged 事件创建一个事件处理程序。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    Response.Write("GridView1_SelectedIndexChanged");
}

在 aspx 页上,您可以定义在该特定事件发生时要调用的事件处理程序,以及实际实现该方法的 cs 文件。

就像你的情况一样:在 aspx 页中,你定义当SelectedIndexChanged事件触发时,GridView1_SelectedIndexChanged要调用的事件处理程序,并在 cs 文件中提供影响。

最新更新