<telerik:RadGrid ID="rgSiteContent" runat="server" CellSpacing="0" GridLines="None" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" onneeddatasource="rgSiteContent_NeedDataSource" onitemcommand="rgSiteContent_ItemCommand"> <MasterTableView CommandItemDisplay="Top" DataKeyNames="pageid"> <Columns> <telerik:GridTemplateColumn FilterControlAltText="Filter EditCommandColumn column" Groupable="False" UniqueName="EditCommandColumn" HeaderText="Actions"> <EditItemTemplate> <telerik:RadButton runat="server" CommandName="Update" Text="Update" /> <telerik:RadButton runat="server" CausesValidation="false" CommandName="Cancel" Text="Cancel" /> </EditItemTemplate> <ItemTemplate> <telerik:RadButton runat="server" CausesValidation="false" CommandName="Edit" Text="Edit" /> <telerik:RadButton runat="server" CausesValidation="false" CommandName="Delete" Text="Delete" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="title" FilterControlAltText="Filter title column" HeaderText="Page Title" ReadOnly="True" SortExpression="title" UniqueName="title" /> <telerik:GridBoundColumn DataField="metadesc" FilterControlAltText="Filter metadesc column" HeaderText="Meta Description" ReadOnly="True" SortExpression="metadesc" UniqueName="metadesc" /> <telerik:GridBoundColumn DataField="metaword" FilterControlAltText="Filter metaword column" HeaderText="Meta Keywords" ReadOnly="True" SortExpression="metaword" UniqueName="metaword" /> <telerik:GridHyperLinkColumn FilterControlAltText="Filter pagelink column" HeaderText="Page Link" SortExpression="pagelink" UniqueName="pagelink" DataTextField="pagelink" Target="_blank" DataNavigateUrlFields="pagelink" /> <telerik:GridBoundColumn DataField="created" DataType="System.DateTime" FilterControlAltText="Filter created column" HeaderText="Created" ReadOnly="True" SortExpression="created" UniqueName="created" /> <telerik:GridBoundColumn DataField="lastedit" DataType="System.DateTime" FilterControlAltText="Filter lastedit column" HeaderText="Last Edit" ReadOnly="True" SortExpression="lastedit" UniqueName="lastedit" /> <telerik:GridBoundColumn DataField="fullname" DataType="System.Int32" FilterControlAltText="Filter fullname column" HeaderText="Edited By" ReadOnly="True" SortExpression="fullname" UniqueName="fullname" /> </Columns> <EditFormSettings EditFormType="WebUserControl" UserControlName="~/managers/controls/admin_sitecontent_editor.ascx"> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> </MasterTableView></telerik:RadGrid>protected void Page_Load(object sender, EventArgs e){}protected void rgSiteContent_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ getSiteContent();}protected void getSiteContent(){ using (SiteDataContext DB = new SiteDataContext()) { var rsSiteContent = from rs in DB.contents where rs.parentid == 0 select new { pageid = rs.pageid, pagelink = String.Format("http://www.mysite.com/site/{0}", rs.pagename), pagename = rs.pagename, title = rs.title, metadesc = rs.metadesc, metaword = rs.metaword, created = rs.created, lastedit = rs.lastedit, fullname = String.Format("{0} {1}", rs.tbl_user.firstname, rs.tbl_user.lastname), pagecontent = rs.pagecontent }; rgSiteContent.DataSource = rsSiteContent.ToList(); }}protected void rgSiteContent_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ if (e.CommandName == RadGrid.UpdateCommandName) { GridEditFormItem editForm = (GridEditFormItem)e.Item; UserControl userControl = (UserControl)editForm.FindControl(GridEditFormItem.EditFormUserControlID); if (Page.IsValid) { using (SiteDataContext DB = new SiteDataContext()) { var rsSiteContent = (from rs in DB.contents where rs.pageid == Convert.ToInt32(editForm.GetDataKeyValue("pageid")) select rs).SingleOrDefault(); rsSiteContent.pagename = ((RadTextBox)userControl.FindControl("pagelinkTextBox")).Text; rsSiteContent.title = ((RadTextBox)userControl.FindControl("pagetitleTextBox")).Text; rsSiteContent.pagecontent = (((RadEditor)userControl.FindControl("contentEditor"))).Content; rsSiteContent.metadesc = ((RadTextBox)userControl.FindControl("metadescTextBox")).Text; rsSiteContent.metaword = ((RadTextBox)userControl.FindControl("metawordTextBox")).Text; rsSiteContent.lastedit = DateTime.Now; rsSiteContent.editby = Profile.UserID; DB.SubmitChanges(); } } }}<asp:CustomValidator ID="editcontentCustomValidator" runat="server" ControlToValidate="pagetitleTextBox" ValidationGroup="editcontentValidationGroup" onservervalidate="editcontentCustomValidator_ServerValidate" Font-Bold="true" ForeColor="Red" ValidateEmptyText="true" /> <table style="width:100%;"> <tr> <td colspan="2"> <telerik:RadButton runat="server" CommandName="Update" CausesValidation="true" Text="Save" ValidationGroup="editcontentValidationGroup" /> <telerik:RadButton runat="server" CommandName="Cancel" CausesValidation="false" Text="Cancel" /> </td> </tr> <tr> <td style="width:110px;">Page Link:</td> <td><telerik:RadTextBox ID="pagelinkTextBox" Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.pagename") %>' Width="800px" /></td> </tr> <tr> <td style="width:110px;">Page Title:</td> <td><telerik:RadTextBox ID="pagetitleTextBox" Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.title") %>' Width="800px" /></td> </tr> <tr> <td style="width:110px;">Meta Description:</td> <td><telerik:RadTextBox ID="metadescTextBox" Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.metadesc") %>' Width="800px" /></td> </tr> <tr> <td style="width:110px;">Meta Keywords:</td> <td><telerik:RadTextBox ID="metawordTextBox" Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.metaword") %>' Width="800px" /></td> </tr> <tr> <td colspan="2">Page Content:</td> </tr> <tr> <td colspan="2"> <telerik:RadEditor ID="contentEditor" Runat="server" Width="940px" Content='<%# DataBinder.Eval(Container, "DataItem.pagecontent") %>' ContentAreaCssFile="~/Styles/RadEditor.css" ContentAreaMode="Div" Height="800px" NewLineMode="Br" /> </td> </tr></table>protected void Page_Load(object sender, EventArgs e){}protected void editcontentCustomValidator_ServerValidate(object source, ServerValidateEventArgs args){ List<string> strErrors = new List<string>(); if (pagelinkTextBox.Text.Count() > 0) { using (SiteDataContext DB = new SiteDataContext()) { var rsCheckDupPageName = from rs in DB.contents where rs.pagename == pagelinkTextBox.Text select rs; if (rsCheckDupPageName.Count() > 1) { strErrors.Add("Duplicate Page Links are not allowed."); } } } else { strErrors.Add("Page Link is required."); } if (pagetitleTextBox.Text.Count() <= 0) { strErrors.Add("Page Title is required."); } if (metadescTextBox.Text.Count() <= 0) { strErrors.Add("Meta Description is required."); } if (metawordTextBox.Text.Count() <= 0) { strErrors.Add("Meta Keywords are required."); } if (contentEditor.Text.Count() <= 0) { strErrors.Add("Page Content is required."); } if (strErrors.Count() > 0) { string strErrorMessage = String.Empty; foreach (string errors in strErrors) { strErrorMessage = String.Format("{0}<br />", errors); } editcontentCustomValidator.IsValid = false; editcontentCustomValidator.ErrorMessage = strErrorMessage; }}<telerik:RadComboBox ID="rcmbSKU" Width="340px" runat="server" MarkFirstMatch="True" CssClass="SKUCombo" EnableEmbeddedBaseStylesheet="false" EnableEmbeddedSkins="false" AllowCustomText="True" OnClientDropDownOpening="HandleOpen" ExpandAnimation-Type="None" CollapseAnimation-Type="None" DropDownWidth="340px" onkeyup="HandleKeyPressed(this)"> <ItemTemplate> <telerik:RadGrid ID="rgridSKU" Width="325px" runat="server" OnNeedDataSource="rgridSKU_NeedDataSource" EnableEmbeddedBaseStylesheet="true" EnableEmbeddedSkins="true"> <MasterTableView NoMasterRecordsText="" AutoGenerateColumns="False" DataKeyNames="ItemCode, ItemKey, Description" Width="100%" ClientDataKeyNames="ItemCode, ItemKey, Description" TableLayout="Fixed"> <Columns> <telerik:GridBoundColumn HeaderText="SKU" DataField="ItemCode" UniqueName="ItemCode"> <HeaderStyle Width="90px"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Description" DataField="Description" UniqueName="Description"> <HeaderStyle Width="215px"></HeaderStyle> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings> <ClientEvents OnRowClick="RowClicked" OnGridCreated="GridCreated"></ClientEvents> <Scrolling AllowScroll="true" UseStaticHeaders="true" ScrollHeight="300px"></Scrolling> </ClientSettings> </telerik:RadGrid> </ItemTemplate> <Items> <telerik:RadComboBoxItem runat="server" Text=" "></telerik:RadComboBoxItem> </Items> </telerik:RadComboBox>
I have a TreeList that
loads onclick of a button (btnGeoDetailsFacilities) which calls
RadGeoTreeListFacilities_Bind() this function grabs the parents. All of that
works fine, I get parent rows.
Problem:
The problem is when I
click the expand node the Treelist and headers
disappear and no event is called. If I click the “btnGeoDetailsFacilities” button
a second time RadTreeList1_ChildItemsDataBind is called and the grid loads with
child items expanded as it should have when I clicked the expand button.
Question:
Why are the Tree and headers disappearing on expand and how do I get it to work properly e.g. show children when I click expand? As show here http://demos.telerik.com/aspnet-ajax/treelist/examples/databinding/loadondemand/defaultvb.aspx
Code:
<telerik:RadAjaxPanelID="RadAjaxPanel1"LoadingPanelID="RadAjaxLoadingPanel"runat="server">
<telerik:RadTreeListrunat="server"ID="RadGeoTreeList"Visible="true"DataKeyNames="FacilitiesreportingId"ParentDataKeyNames="VERA3"AutoGenerateColumns="false"
Width="100%"Height="400"ShowTreeLines="true"AllowLoadOnDemand="true">
<Columns>
<telerik:TreeListBoundColumnDataField="Origin"HeaderText="Origin"UniqueName="Origin"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Destination"HeaderText="Destination"UniqueName="Destination"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="FinanceNumber"HeaderText="Finance Number"UniqueName="FinanceNumber"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Address"HeaderText="Address"UniqueName="Address"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="City"HeaderText="City"UniqueName="City"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="State"HeaderText="State"UniqueName="State"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="ZipCode"HeaderText="Zip"UniqueName="ZipCode"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Distance"HeaderText="Driving Distance"UniqueName="Distance"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Area"HeaderText="Area"UniqueName="Area"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="PFC"HeaderText="PFC"UniqueName="PFC"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="OnRolls1"HeaderText="OnRolls"UniqueName="OnRolls1"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Residual"HeaderText="Residual"UniqueName="Residual"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Withheld"HeaderText="Withheld"UniqueName="Withheld"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="Optional1"HeaderText="OPT"UniqueName="Optional1"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumnDataField="VERA1"HeaderText="VER"UniqueName="VERA1"></telerik:TreeListBoundColumn>
</Columns>
</telerik:RadTreeList>
</telerik:RadAjaxPanel>
<telerik:RadAjaxLoadingPanelID="RadAjaxLoadingPanel"runat="server"/>
<telerik:RadAjaxManagerrunat="server"ID="RadAjaxManager1"ClientEvents-OnRequestStart="mngRequestStarted"EnableAJAX="true">
<AjaxSettings>
<telerik:AjaxSettingAjaxControlID="btnGeoDetailsFacilities">
<UpdatedControls>
<telerik:AjaxUpdatedControlControlID="RadGeoTreeList"LoadingPanelID="RadAjaxLoadingPanel"/>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
<ClientEventsOnRequestStart="mngRequestStarted"/>
</telerik:RadAjaxManager>
PublicSub RadGeoTreeListFacilities_Bind()
geoDataList = ds.GetDistanceGridFacilities(oLat, oLon, radius, facilityNumber)
Dim g = (From item In geoDataList _
Where item.VERA3 = Nothing _
Select item).ToList()
RadGeoTreeList.DataSource = g
Cache("geoData") = geoDataList
EndSub
‘why does this get called twice onload?
ProtectedSub RadTreeList1_NeedDataSource(ByVal sender AsObject, ByVal e AsTreeListNeedDataSourceEventArgs) Handles RadGeoTreeList.NeedDataSource
If IsCallback Or IsPostBack Then
If Session("GeoTreeListMode") = "facilities"Then
RadGeoTreeListFacilities_Bind()
ElseIf Session("GeoTreeListMode") = "studies"Then
RadGeoTreeList_Bind()
EndIf
EndIf
EndSub
ProtectedSub RadTreeList1_ChildItemsDataBind(ByVal sender AsObject, ByVal e AsTreeListChildItemsDataBindEventArgs) Handles RadGeoTreeList.ChildItemsDataBind
Dim id AsInteger = Convert.ToInt32(e.ParentDataKeyValues("FacilitiesreportingId").ToString())
Dim g = (From item In geoDataList _
Where item.VERA3 = id _
Select item).ToList()
e.ChildItemsDataSource = g
EndSub
ProtectedSub OnClick_btnGeoDetailsFacilities(sender AsObject, e As System.EventArgs)
Session("GeoTreeListMode") = "facilities"
End Sub
PublicClassFacilityItem
Private _Origin AsString
PublicProperty Origin() AsString
Get
Return _Origin
EndGet
Set(ByVal value AsString)
_Origin = value
EndSet
EndProperty
Private _Destination AsString
PublicProperty Destination() AsString
Get
Return _Destination
EndGet
Set(ByVal value AsString)
_Destination = value
EndSet
EndProperty
Private _Distance AsString
PublicProperty Distance() AsString
Get
Return _Distance
EndGet
Set(ByVal value AsString)
_Distance = value
EndSet
EndProperty
Private _Address AsString
PublicProperty Address() AsString
Get
Return _Address
EndGet
Set(ByVal value AsString)
_Address = value
EndSet
EndProperty
Private _City AsString
PublicProperty City() AsString
Get
Return _City
EndGet
Set(ByVal value AsString)
_City = value
EndSet
EndProperty
Private _State AsString
PublicProperty State() AsString
Get
Return _State
EndGet
Set(ByVal value AsString)
_State = value
EndSet
EndProperty
Private _ZipCode AsString
PublicProperty ZipCode() AsString
Get
Return _ZipCode
EndGet
Set(ByVal value AsString)
_ZipCode = value
EndSet
EndProperty
Private _FinanceNumber AsString
PublicProperty FinanceNumber() AsString
Get
Return _FinanceNumber
EndGet
Set(ByVal value AsString)
_FinanceNumber = value
EndSet
EndProperty
Private _FacilityName AsString
PublicProperty FacilityName() AsString
Get
Return _FacilityName
EndGet
Set(ByVal value AsString)
_FacilityName = value
EndSet
EndProperty
Private _Optional1 AsInteger
PublicProperty Optional1() AsInteger
Get
Return _Optional1
EndGet
Set(ByVal value AsInteger)
_Optional1 = value
EndSet
EndProperty
Private _Withheld AsInteger
PublicProperty Withheld() AsInteger
Get
Return _Withheld
EndGet
Set(ByVal value AsInteger)
_Withheld = value
EndSet
EndProperty
Private _OnRolls1 AsInteger
PublicProperty OnRolls1() AsInteger
Get
Return _OnRolls1
EndGet
Set(ByVal value AsInteger)
_OnRolls1 = value
EndSet
EndProperty
Private _Area AsString
PublicProperty Area() AsString
Get
Return _Area
EndGet
Set(ByVal value AsString)
_Area = value
EndSet
EndProperty
Private _PFC AsString
PublicProperty PFC() AsString
Get
Return _PFC
EndGet
Set(ByVal value AsString)
_PFC = value
EndSet
EndProperty
Private _Residual AsInteger
PublicProperty Residual() AsInteger
Get
Return _Residual
EndGet
Set(ByVal value AsInteger)
_Residual = value
EndSet
EndProperty
Private _FacilitiesreportingId AsInteger
PublicProperty FacilitiesreportingId() AsInteger
Get
Return _FacilitiesreportingId
EndGet
Set(ByVal value AsInteger)
_FacilitiesreportingId = value
EndSet
EndProperty
Private _VERA1 AsInteger
PublicProperty VERA1() AsInteger
Get
Return _VERA1
EndGet
Set(ByVal value AsInteger)
_VERA1 = value
EndSet
EndProperty
Private _VERA3 AsInteger
PublicProperty VERA3() AsInteger
Get
Return _VERA3
EndGet
Set(ByVal value AsInteger)
_VERA3 = value
EndSet
EndProperty
'Public Sub New(ByVal strOrigin As String, ByVal strDestination As String, ByVal strCity As String, ByVal strState As String, ByVal strZipCode As String, ByVal strAddress As String, _
' ByVal strDistance As String, ByVal strFacilityName As String, ByVal strFinanceNumber As String, ByVal strArea As String, ByVal strPFC As String, ByVal intOnRolls1 As Integer, _
' ByVal intVERA1 As Integer, ByVal intResidual As Integer, ByVal intOptional1 As Integer, ByVal intWithHeld As Integer, ByVal intFacilitiesreportingId As Integer, ByVal intVERA3 As Integer)
' Origin = strOrigin
' Destination = strDestination
' City = strCity
' State = strState
' ZipCode = strZipCode
' Address = strAddress
' Distance = strDistance
' FacilityName = strFacilityName
' FinanceNumber = strFinanceNumber
' Area = strArea
' PFC = strPFC
' OnRolls1 = intOnRolls1
' VERA1 = intVERA1
' VERA3 = intVERA3
' Residual = intResidual
' Optional1 = intOptional1
' FacilitiesreportingId = intFacilitiesreportingId
' Withheld = intWithHeld
'End Sub
End Class
Mock data:
'mergedList.Add(New FacilityItem("asdf", "asdf", "asdf", "asdf", "asdf", "asdf", "asdf", "asdf", "asdf", "asdf", "asdf", 1234, 1234, 1234, 1234, 1234, 222, 1))
'mergedList.Add(New FacilityItem("header", "header", "header", "header", "header", "header", "header", "header", "header", "header", "header", 1234, 1234, 1234, 1234, 1234, 1, 0))
