This is a migrated thread and some comments may be shown as answers.

Advanced binding with Datapager Problem

1 Answer 99 Views
ListView
This is a migrated thread and some comments may be shown as answers.
Ayberk
Top achievements
Rank 1
Ayberk asked on 04 Jul 2011, 05:09 AM
I am using Advanced databinding method. When yapAfter button is clicked I add an item to my List stored in the session according to the specific index and I rebind my List. Also in NeedData Source event my List stored in the session is binded. There is no problem when Allowpaging is off in Listview. However when I turn on Allowpaging the items I added last to my List comes out at the beginning of the List. They are not listed according to the Index I assigned while adding.  

Thanks,
Regards.

<telerik:RadListView ID="RadListView1" runat="server" ItemPlaceholderID="ProductsHolder"
            OnNeedDataSource="RadListView1_NeedDataSource" OnItemDataBound="RadListView1_ItemDataBound"
            OnItemCommand="RadListView1_ItemCommand" DataKeyNames="RID">
            <LayoutTemplate>
                <asp:Panel ID="ProductsHolder" runat="server" />
                <telerik:RadDataPager ID="RadDataPager1" runat="server" PagedControlID="RadListView1"
                    PageSize="50" AllowSEOPaging="False" AllowRouting="False">
                    <Fields>
                        <telerik:RadDataPagerButtonField FieldType="FirstPrev" />
                        <telerik:RadDataPagerButtonField FieldType="Numeric" />
                        <telerik:RadDataPagerButtonField FieldType="NextLast" />
                        <telerik:RadDataPagerPageSizeField PageSizeText="Page size: " />
                        <telerik:RadDataPagerGoToPageField CurrentPageText="Page: " TotalPageText="of" SubmitButtonText="Go"
                            TextBoxWidth="15" />
                        <telerik:RadDataPagerTemplatePageField>
                            <PagerTemplate>
                                <div style="float: right">
                                    <b>Items
                                        <asp:Label runat="server" ID="CurrentPageLabel" Text="<%# Container.Owner.StartRowIndex+1%>" />
                                        to
                                        <asp:Label runat="server" ID="TotalPagesLabel" Text="<%# Container.Owner.TotalRowCount > (Container.Owner.StartRowIndex+Container.Owner.PageSize) ? Container.Owner.StartRowIndex+Container.Owner.PageSize : Container.Owner.TotalRowCount %>" />
                                        of
                                        <asp:Label runat="server" ID="TotalItemsLabel" Text="<%# Container.Owner.TotalRowCount%>" />
                                        <br />
                                    </b>
                                </div>
                            </PagerTemplate>
                        </telerik:RadDataPagerTemplatePageField>
                    </Fields>
                </telerik:RadDataPager>
            </LayoutTemplate>
            <ItemTemplate>
                <div id="segment<%#Eval("RID") %>" class="segment">
                    <table>
                        <tr>
                            <td style="width: 50px">
                                <telerik:RadButton ID="RadButton1" runat="server" Text="X" CommandName="deleteSegment">
                                </telerik:RadButton>
                                <input name="Button11" type="button" onclick="javascript:deleteSegment('#segment<%#Eval("RID") %>');"
                                    value="X" />
                            </td>
                            <td style="width: 100%">
                                <textarea id="sourceTextarea" name="sourceTextarea" style="width: 98%"><%#Eval("Segment") %></textarea>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                   
                            </td>
                            <td>
                                <telerik:RadButton ID="RadButton2" runat="server" Text="+" CommandName="yapAfter">
                                </telerik:RadButton>
                                <input name="Button11" type="button" onclick="javascript:yapAfter_source('#segment<%#Eval("RID") %>');"
                                    value="+" />
                                <input name="Button11" type="button" onclick="javascript:splitSegment('#segment<%#Eval("RID") %>');"
                                    value="-/-" />
                                <input name="Button11" type="button" onclick="javascript:segmentMerge('#segment<%#Eval("RID") %>');"
                                    value=">|<" />
                            </td>
                        </tr>
                    </table>
                </div>
            </ItemTemplate>
        </telerik:RadListView>


protected void RadListView1_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e)
    {
        if (!IsPostBack)
        {
            if (String.IsNullOrEmpty(HiddenField1.Value))
                return;
            decimal m_ProjectRef = Convert.ToDecimal(HiddenField1.Value);
            List<prepdata> mList = new List<prepdata>();
            mList = PreprocessHelperDB.getDataSource(m_ProjectRef);
            Session["myList"] = mList;
            RadListView1.DataSource = mList;
        }
        else
        {
            List<prepdata> mList = (List<prepdata>)Session["myList"];
            RadListView1.DataSource = mList;
        }
              
  
    }
  
protected void RadListView1_ItemCommand(object sender, RadListViewCommandEventArgs e)
    {
  
if (String.Equals(e.CommandName, "yapAfter"))
        {
            decimal m_ProjectRef = Convert.ToDecimal(HiddenField1.Value);
  
            RadListViewDataItem dataItem = (RadListViewDataItem)e.ListViewItem;
  
            List<prepdata> mList = new List<prepdata>();
            mList = (List<prepdata>)Session["myList"];
  
            mList.Insert(0, new prepdata { Segment = "asdsadaAA index:" + 0});
  
            mList.Insert(1, new prepdata { Segment = "asdsadaAA:" + 1 });
  
            mList.Insert(5, new prepdata { Segment = "asdsadaAA:" + 5 });
  
            Session.Remove("myList");
  
            Session["myList"] = mList;
  
            RadListView1.Rebind();
  
        }
    }


1 Answer, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 07 Jul 2011, 03:20 PM
Hi Ayberk,

Based on the provided information it is hard to determine what is the cause of the problem. Can you try preparing a sample project illustrating the problem and send it to us? For that purpose, you will need to open a formal support ticket where you would be able to attach a zipped version of the project.

Regards,
Pavlina
the Telerik team

Register for the Q2 2011 What's New Webinar Week. Mark your calendar for the week starting July 18th and book your seat for a walk through of all the exciting stuff we will ship with the new release!

Tags
ListView
Asked by
Ayberk
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Share this question
or