在 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 文件中提供影响。