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();
}
}