0

グリッドビューを使用して検索結果を表示します。検索ボタンをクリックすると、グリッドビューにページ 1 が表示されますが、ページ 2 のリンクをクリックするとグリッドビューが消え、再度検索ボタンをクリックしてページ 2 のコンテンツを表示すると元に戻りました。

ここに私のコードがあります

 <asp:GridView ID="searchresult" runat="server" AutoGenerateColumns="true" AllowPaging="true" OnRowDataBound="searchresult_RowDataBound" OnPageIndexChanging="searchresult_PageIndexChanging" 
             HeaderStyle-BackColor="#f9e4d0"
             HeaderStyle-Height="20px"
             Font-Size="11px"
             AlternatingRowStyle-BackColor="#cfdfef"
             Width="800px" style="text-align:left">
   </asp:GridView>

コードビハインド

protected void search_Click(object sender, EventArgs e)
 {
      List<someclass> totalResult = new List<someclass>();
      ..... //some code to generate the datasource

      searchresult.DataSource = totalResult;
      searchresult.AllowPaging = true;
      searchresult.DataBind();
 }

protected void searchresult_RowDataBound(object sender, GridViewRowEventArgs e)
{
}

protected void searchresult_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
      searchresult.PageIndex = e.NewPageIndex;
      DataBind();
}

検索ボタンをもう一度クリックするまで、ページ 2 が表示されない理由がわかりません。ページ 2 のリンクをクリックすると、ページはポストバックされましたが、RowDataBound イベントは発生しませんでした

4

2 に答える 2

0

searchresult_PageIndexChanging イベント ハンドラーにより、その機能が機能します。ただし、垂直スクロール バーを備えた Panel 内で gridview コントロールを使用することをお勧めします。私のユーザーはそれを気に入っており、ページ インデックスの変更を定義しなくても、グリッドビューを上下に移動する方がはるかに高速です。

うまくいくことを願っています。

于 2014-03-17T19:37:02.893 に答える
0

グリッドにデータソースを提供する必要があります。でのみこれを行っているように見えるsearch_Clickため、グリッドにはデータのみが含まれます。次のようなものを試してください:

protected void search_Click(object sender, EventArgs e)
{
    PopGrid();
}

protected void searchresult_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    searchresult.PageIndex = e.NewPageIndex;
    PopGrid();
}

protected void PopGrid()
{
    List<someclass> totalResult = new List<someclass>();
    ..... //some code to generate the datasource

    searchresult.DataSource = totalResult;
    searchresult.AllowPaging = true;
    searchresult.DataBind();
}
于 2013-09-26T19:13:00.340 に答える