2

リストから作成したグリッド ビューでページのインデックス作成を有効にしたいと考えています。

リストは以下のようになります

public class SearchResults
    {
        public string fname { get; set; }
        public string mname { get; set; }
        public string lname { get; set; }

    }

次のメソッドから、このリストと GridView にデータを追加します。

SearchResults result= new SearchResults();// Class Variable      
Void Search()
{

result.fname="John";
result.mmane="Cody";
result.lmane="lname";
SearchResults.Add(result);
Gridview1.DataSource=result;
Gridview1.DataBnd();
}

このページのページング インデックス作成を有効にしたかったので、以下のコードのようなイベントを作成しました。

protected void On_PageIndexChanging(Object sender, GridViewPageEventArgs e)
    {

        GridView1.PageIndex = e.NewPageIndex;
        Gridview1.DataSource=result;
        Gridview1.DataBnd();


    }

ページのインデックスイベントでグリッドビューをバインドした後でも、機能しません。

何が起こっているのでしょうか?リストの結果をグリッド ビュー ページのインデックス作成にバインドする方法を説明してもらえますか?

ありがとう。

4

1 に答える 1

0

次のコードを使用できます。

public class SearchResults
{
   public string fname { get; set; }
   public string mname { get; set; }
   public string lname { get; set; }
}

.aspx ページで次のようにマークアップを設定します。

<asp:GridView runat="server" ID="Gridview1" AllowPaging="True" OnPageIndexChanging="PageIndexChanging" PageSize="4">
    </asp:GridView>

コード ビハインド (.aspx.cs) に次のコードを記述します。

    protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)
      {
         // Get list of search and bind data with Grid
         this.Search();
      }
    }

    private void  Search()
    {
        var searchResults = new List<SearchResults>();
        var search = new SearchResults { fname = "John" };
        searchResults.Add(search);
        search = new SearchResults { fname = "John2" };
        searchResults.Add(search);

        search = new SearchResults {fname = "Micheal" };
        searchResults.Add(search);

        search = new SearchResults { fname = "Sara" };
        searchResults.Add(search);

        search = new SearchResults { fname = "Jenne" };
        searchResults.Add(search);

        search = new SearchResults { fname = "Mac" };
        searchResults.Add(search);

        this.Gridview1.DataSource = searchResults;
        this.Gridview1.DataBind();
    }

    protected void PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.Gridview1.PageIndex = e.NewPageIndex;
        this.Search();
    }
于 2013-11-27T05:01:35.850 に答える