Quantcast
Channel: SharePoint 2010 - Development and Programming forum
Viewing all articles
Browse latest Browse all 11571

Filter,Sorting issue with Paging in SPGridView

$
0
0

Hi,

I am working in Visual web part with Sharepoint 2010 foundation.

I have used the ootb concept of sorting,filtering and paging in SPGridView + DataSource + DataTable

Here is my code:

<SharePoint:SPGridView runat="server" ID="reportsList" AutoGenerateColumns="false"
        PageSize="3" AllowPaging="true" AllowSorting="true" AllowFiltering="true"
        FilterDataFields="Title,Status" FilteredDataSourcePropertyName="FilterExpression"
        FilteredDataSourcePropertyFormat="{1} LIKE '{0}'">
        <Columns>
            <SharePoint:SPBoundField HeaderText="Title" SortExpression="Title" DataField="Title" />
            <SharePoint:SPBoundField HeaderText="Status" SortExpression="Status" DataField="Status" />
            <asp:TemplateField HeaderText="Get Candidates">
                <ItemTemplate>
                    <asp:LinkButton ID="lnkBtnGetCandidates" runat="server" Text="Get Candidates" CausesValidation="False"
                        CommandName="Select" CommandArgument='<%#Eval("Description")%>'></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        <EmptyDataTemplate>
            No data.
        </EmptyDataTemplate>
    </SharePoint:SPGridView>
    <asp:ObjectDataSource ID="ODS1" runat="server" EnablePaging="true" EnableCaching="false"
        TypeName="SPGridView.SPGrid.SPGridUserControl, $SharePoint.Project.AssemblyFullName$"
        SelectMethod="SelectAdvanced" SelectCountMethod="CountSelectAdvanced" ></asp:ObjectDataSource>

//Code behind

protected void Page_Load(object sender, EventArgs e)
        {
            reportsList.PagerTemplate = null;          

        }


        public DataTable GetTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Title");
            dt.Columns.Add("Status");
            dt.Columns.Add("Description");

            dt.Rows.Add(new object[] { "Sanjiv1", ".Net1", "jjj1" });
            dt.Rows.Add(new object[] { "Sanjiv2", ".Net2", "jjj2" });
            dt.Rows.Add(new object[] { "Sanjiv3", ".Net3", "jjj3" });
            dt.Rows.Add(new object[] { "Sanjiv4", ".Net4", "jjj4" });
            dt.Rows.Add(new object[] { "Sanjiv5", ".Net5", "jjj" });
            dt.Rows.Add(new object[] { "Mahesh", "Sharepoint", "jjj" });
            dt.Rows.Add(new object[] { "Sanjiv", ".Net", "jjj" });

            return dt;
        }

        public DataView SelectAll()
        {
            DataTable table = GetTable();
            table.DefaultView.Sort = "Title";

            return table.DefaultView;
        }

        public DataTable SelectAdvanced(int maximumRows, int startRowIndex)
        {
            DataTable table = GetTable();

            DataTable filteredTable;
            if (maximumRows > 0)
                filteredTable = table.Rows.OfType<DataRow>().Skip(startRowIndex).Take(maximumRows).CopyToDataTable();
            else
                filteredTable = table;

            return filteredTable;
        }

        public int CountSelectAdvanced()
        {
            return SelectAll().Count;
        }

Now my issue is everything is working well apart from Sorting and filtering in next page. If is filter any item of current page, it filter, but if i select any item which is in next page, it show "No Data". same thing happens with sorting as well. Please help to identify where i am missing things.

Thanks

Mahesh


Viewing all articles
Browse latest Browse all 11571

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>