2015-06-25 59 views
0

我有一箇中繼器,並且正在使用分頁。它的工作原理,但它與我的排序搞笑的東西。首先,如果我按排序按鈕,我的分頁控件顯示兩次。其次,它基於默認排序順序進行分頁。任何想法可能是錯誤的?使用分頁中繼器進行分頁

protected void btnSort_Click(object sender, EventArgs e) 
    { 
     Show_Data(); 
    } 

    public void Show_Data() 
    { 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["PBRConnectionString"].ConnectionString); 
     string srtOrder = cboSortBy.Text; 
     SqlDataAdapter adp = new SqlDataAdapter("select [ACCT_LIST].*, [ACCT_GRP_LIST].ACCT_GRP from [ACCT_LIST] LEFT JOIN [ACCT_GRP_LIST] on [ACCT_GRP_LIST].ACCT_GRP_PK = [ACCT_LIST].ACCT_GRP_FK ORDER BY " + srtOrder + "", con); 
     DataSet ds = new DataSet(); 
     adp.Fill(ds, "TAcctList"); 

     //Pagination code so only a set number of records loads at a time. 
     // Done to speed up the loading, since this list gets really long. 
     PagedDataSource pds = new PagedDataSource(); 
     pds.DataSource = ds.Tables["TAcctList"].DefaultView; 
     pds.AllowPaging = true; 
     pds.PageSize = 20; 

     int currentPage; 

     if (Request.QueryString["page"] != null) 
     { 
      currentPage = Int32.Parse(Request.QueryString["page"]); 
     } 
     else 
     { 
      currentPage = 1; 
     } 

     pds.CurrentPageIndex = currentPage - 1; 
     Label1.Text = "Page " + currentPage + " of " + pds.PageCount; 

     if (!pds.IsFirstPage) 
     { 
      MenuItem itemMessage = NavMenu.FindItem("First"); 
      itemMessage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1"; 
     } 

     AcctRepeater.DataSource = pds; 
     AcctRepeater.DataBind(); 

     CreatePagingControl(pds.PageCount, pds.CurrentPageIndex); 
     // End of Pagination code 

     con.Close(); 
    } 

而且在ASP.Net側,按鍵控制如下:

<table> 
<tr> 
    <td width="150"><asp:DropDownList ID="cboSortBy" runat="server" Width="120"> 
           <asp:ListItem Value="StatusText">Benefit Type</asp:ListItem> 
           <asp:ListItem Value="PRIORITY_RANK">Priority Rank</asp:ListItem> 
           <asp:ListItem Value="ACTIVE_FLG">Active Flag</asp:ListItem> 
           </asp:DropDownList></td> 
    <td width="180"><asp:Button ID="btnSort" runat="server" 
     Text="Sort" Width="121px" onclick="btnSort_Click" /></td> 
</tr> 
</table> 

分頁一塊是新的,但加入之前的排序功能正常工作。現在分頁文件工作正常,但分類文件變得不穩定。我無法弄清楚分頁片的哪一部分將它扔出去了。

+0

我認爲控制出現兩次,因爲我沒有做回發?雖然不知道排序問題。 –

+0

好的,我認爲問題的一部分是表單回發,並且保存排序值的組合框被重置爲默認值。我的分頁創建的鏈接如下所示:http:// localhost:50361/AdminForms/frmManageBenefitType.aspx?page = 3。所以,我猜你什麼時候點擊它會做一個完整的回發,這是重置排序組合。任何人都知道如何與之作鬥爭?我想我需要以某種方式推進組合選定的價值。 –

回答

0

嘗試

ds.Tables["TAcctList"].DefaultView.Sort = "PRIORITY_RANK ASC"; 
+0

重點是,它會回到默認值。對排序順序進行硬編碼不會幫助我,我需要讓它在刷新時識別排序順序。 –

+0

不要硬編碼它。從你的下拉列表中獲取它。我不覺得我必須得到具體的。抱歉。重點是,按照上述方式進行設置。 – wtfidgafmfgtfooh