3

GridViewで、C#ファイルの代わりに同じページでselectメソッドを定義する必要があるのはなぜですか?

たとえば、index.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、このメソッドはindex.aspx.csではなくindex.aspxで定義する必要がありますか?

エラーメッセージは

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?)

更新:解決します。プロジェクトをクリーンアップした後、再構築します。今は動作します。プロジェクトをビルド/デバッグする正しい方法は何ですか?キャッシュをクリーンアップする方法は?

あなたの助けに感謝。

4

3 に答える 3

7

メソッドGridView1_SelectedIndexChangedは、を含むページで定義する必要がありGridView1、少なくとも次のように宣言するようにしてください。protected

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
   //do magic
}
于 2012-05-10T15:37:14.523 に答える
1

コードビハインドが定義されていますか? 確実に使われていますか?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");
}
于 2012-05-10T15:57:13.000 に答える
0

aspx ページで、特定のイベントが発生したときに呼び出されるイベント ハンドラーを定義し、cs ファイルで実際にメソッドを実装します。

あなたの場合のように:aspxページで、イベントが発生したときSelectedIndexChangedGridView1_SelectedIndexChangedイベントハンドラーが呼び出されるように定義し、csファイルで実装を提供します。

于 2012-05-10T15:09:40.650 に答える