DataPager
有一些奇怪的行爲。DataPager沒有列出比第二頁
因此,爲了解決這個問題,我有一個DataPagerReapeater
的信息。我有一個DataPager
, ,這是我一起工作的。我有3頁,但DataPager
有一些奇怪的行爲。
當我在第一頁上,然後點擊下一頁,它會到第二,一切都很好。當我再次點擊下一步時,它會進行回發,但不會移至第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();
}
因此,該行爲是非常奇怪的,我不知道這個問題可能是什麼。
還有人遇到過這樣的問題嗎?
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;
更新2: 下面是
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()後面的代碼:http://www.codeproject.com/Articles/45163/Extend-Repeater-to-support-DataPager
問題已解決,似乎datapagerrepeater沒有正確實施,現在我發現我可以的來源 修理它。無論如何請幫助
你檢查了page.ispostback? – 2012-01-30 16:23:35
僅供參考,請在發佈前檢查您的帖子是否存在拼寫錯誤等=) – jadarnel27 2012-01-30 16:27:24
我沒有發現任何錯誤的拼寫錯誤!用load_method更新了帖子 – Alnedru 2012-01-30 16:41:15