DataPager
が異常な動作をします。DataPagerは2ページ目以降の一覧を表示しません
問題を解決するために、私はDataPagerReapeater
の情報を持っています。私は一緒に仕事をしたDataPager
、 を持っています。私は3ページありますが、DataPager
には奇妙な動作があります。
私が最初のページにいるときに、次にクリックすると2番目になり、すべて正常です。次のページをクリックすると、ポストバックが行われますが、3ページ目に移動しません。最後と最初もうまくいきます。
しかし、私が2番目のページにいるとき、次のページをクリックすると、3番目のページには移動せず、2番目のページに移動します。 3番目のページを手動でクリックして前のをクリックするのと同じように、最初のページに移動します。
私は本当に理由を理解していません。ここで
はDataPager
次のとおりです。ここで
<asp:DataPager ID="DataPager1" PagedControlID="ReapeaterCSGator" PageSize="5"
runat="server" onprerender="DataPager1_PreRender">
<fields>
<asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" FirstPageText="<< First"
ShowNextPageButton="False" ShowPreviousPageButton="False" />
<asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="False" FirstPageText="< Previous"
ShowNextPageButton="False" ShowPreviousPageButton="True" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="False" LastPageText="Next >"
ShowNextPageButton="True" ShowPreviousPageButton="False" />
<asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" LastPageText="Last >>"
ShowNextPageButton="False" ShowPreviousPageButton="False" />
</fields>
</asp:DataPager>
は、私はPreRenderイベントで実行するコードです:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
IEnumerable<CollaborativeSpace> listCS = LoadCollaborativeSpaces();
// Binding the repeater with the list of documents
ReapeaterCSGator.DataSource = listCS;
ReapeaterCSGator.DataBind();
}
ので、行動は本当に奇妙であると私は、問題が何ができるかわかりません。
誰もがこのような問題に直面しましたか?そのコンポーネントは、ここでフォームを使用した
public void SetPageProperties(int startRowIndex, int maximumRows, bool databind)
{
ViewState["_startRowIndex"] =startRowIndex;
ViewState["_maximumRows"] = maximumRows;
if (TotalRows > -1)
{
if (TotalRowCountAvailable != null)
{
TotalRowCountAvailable(this, new PageEventArgs((int)ViewState["_startRowIndex"], (int)ViewState["_maximumRows"], TotalRows));
}
}
}
SetPageProperties()の背後にあるコードは、ここ :
UPDATE:ここ負荷法にあり、私はそこにある:
ResultPerPages = GetResultsPerPage();
DataPager2.PageSize = ResultPerPages;
DataPager1.PageSize = ResultPerPages;
//We initialize the pager repeater with the same value
ReapeaterCSGator.SetPageProperties(0, ResultPerPages, false);
//We add an handler on item data bound event for sub repeater
ReapeaterCSGator.ItemDataBound += ReapeaterCSGator_ItemDataBound;
//If the user is not post backing
if (!IsPostBack)
{
//We add choices on drop down list "Results per page"
foreach (int choice in NbResultsChoices)
{
NbResultsPerPage.Items.Add(new ListItem(choice + " results per page", choice.ToString(CultureInfo.InvariantCulture)));
}
//We get collaborative spaces from Sharepoint list
//IEnumerable<CollaborativeSpace> listCS = LoadCollaborativeSpaces();
//// Binding the repeater with the list of documents
//ReapeaterCSGator.DataSource = listCS;
UPDATE 2 :http://www.codeproject.com/Articles/45163/Extend-Repeater-to-support-DataPager
問題が解決しました。datapagerrepeaterが正しい方法で実装されていなかったようです。 修理する。とにかく助けてくれてありがとう
page.ispostbackをチェックしましたか? –
投稿する前にあなたの投稿のスペルミスなどを確認してください=) – jadarnel27
私は何か間違ったスペルミスを見つけませんでした! load_methodを使って投稿を更新しました – Alnedru