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