2009-04-05 13 views
2

リストビューコントロール内のページ内にスタンダードページがありますが、ページャは機能しますが、実際に移動する前にページャリンクを2回クリックする必要があるアイテムの次のリストに移動するには次の項目のセット。ListViewでの不思議なページャの動作

ページャのコードは次のとおりです。背後

<asp:ListView ID="lv_LostCard" runat="server" DataKeyNames="request_id" EnableViewState="false"> 
     <LayoutTemplate> 
       <table width="550" border="1" class="table"> 
        <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
       </table> 
       <asp:DataPager ID="lv_Books_Pager" runat="server" PageSize="10"> 
        <Fields> 
         <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="true" ShowNextPageButton="false" /> 
         <asp:NumericPagerField /> 
         <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="false" ShowNextPageButton="true" ShowLastPageButton="false" /> 
        </Fields> 
       </asp:DataPager> 
      </LayoutTemplate> 
      <ItemTemplate>    
      </ItemTemplate> 
    </asp:ListView> 

とコードは次のとおりです。(!Page.IsPostBack)

は、ボイドをPage_Load(オブジェクト送信者、EventArgsの電子) { 場合を保護 { getLostCardsList(); }}

protected void getLostCardsList() 
    { 
     using(LostCardsManagementDataContext LostCard = new LostCardsManagementDataContext()) 
     { 
      var getLostCardsList = from lc in LostCard.lostcard_request_cards 
            select lc; 
      lv_LostCard.DataSource = getLostCardsList; 
      lv_LostCard.DataBind(); 
     } 

誰かが私に何が起こって、どのようにそれを修正するに伝えることができますか?事前

答えて

4

私は本当にリストビューに問題があります。

あなたの質問に関連する解決策が見つかりました。それを修正する他の方法はないようです。あなたのソースをリストビューに再バインドするには、OnPreRenderメソッドを呼び出す必要があります。あなたのページがポストバックイベントを持っている場合

protected void listview_PreRender(object sender, EventArgs e) 
{ 
    getLostCardsList();//your method for binding 
} 

は、あなたのページが明確に .Moreをレンダリングされる前に呼び出さのPreRenderイベントをadvicedことagain.Thatは、サーバーのコレクションにデータを格納する必要があることを意味レンダリングされます(つまり、セッション)。

0

おかげで、あなたは、コードの中であなたのリストビューを結合していますか?ポストバックではないことを確認してください。

+0

はい、私のコードの背後に私はif!(!Page.IsPostBack)、それは本当に私を狂って駆動し、私はそれがそのように動作するのか分からない。 – Dmitris

+0

問題のコードを編集して追加しました。 – Dmitris

0

ListViewのビューステートをオフにしました。再びviewstateで試してみてください。

1

PagePropertiesChangedイベントのDataBind。

private void listview_PagePropertiesChanged(object sender, System.EventArgs e) 
{ 
    listview.DataBind(); 
} 
+0

私はこれを試しましたが、正確には動作しません! – Myra

関連する問題