Hi. I have nested listview . Child Listview has onneeddatasource. but i cant Access any DataKeyValue or custom control attribute in OnNeedDataSource . both listviews are inside ajaxpanel.
There is an old post about it here. strange i can reach these values from itemcommand of child listview, But i cant access anything from needdatasource event. thanks.
basic skeleton:
<telerik:RadAjaxPanel ID="apanelParent" runat="server" ViewStateMode="Enabled" EnableViewState="true"> <telerik:RadListView ID="lvParent" runat="server" DataKeyNames="CId" DataSourceID="OADLSParent" ViewStateMode="Enabled" EnableViewState="true"> <ItemTemplate> <asp:HiddenField ID="hfCid2" runat="server" Value='<%# Eval("CId") %>' /> <telerik:RadAjaxPanel ID="apanelChild" runat="server" ViewStateMode="Enabled" EnableViewState="true"> <telerik:RadButton ID="btnShowChildInsertItem" runat="server" ViewStateMode="Enabled" EnableViewState="true" Text="insert input" OnClick="btnShowChildInsertItem_Click" cId='<%# Eval("CId") %>' CommandArgument='<%#Container.DataItemIndex%>'> </telerik:RadButton> <telerik:RadListView ID="lvChild" runat="server" DataKeyNames="Id" EnableViewState="true" ViewStateMode="Enabled" InsertItemPosition="FirstItem" AllowPaging="True" PageSize="5" OnNeedDataSource="lvChild_NeedDataSource" OnItemCommand="lvChild_ItemCommand"> </telerik:RadListView> </telerik:RadAjaxPanel> </ItemTemplate> </telerik:RadListView> </telerik:RadAjaxPanel>
OnNeedDataSource of child:
protected void lvChild_NeedDataSource(object sender, RadListViewNeedDataSourceEventArgs e) { RadListView lvChild = (RadListView)sender; RadListViewDataItem parentItem = (RadListViewDataItem)lvChild.NamingContainer; var parentCevapId = (int)parentItem.GetDataKeyValue("CId");//null.null exception RadButton rb = (RadButton)parentItem.FindControl("btnShowChildInsertItem"); int cId = Convert.ToInt32(rb.Attributes["cId"]);//null.there is rb but no attr. HiddenField hf2 = (HiddenField)parentItem.FindControl("hfCid2");
//there is an hf2 but no value string cId3 = hf2.Value.ToString();//null