I am having issues with getting the Add new record button to work in the self referencing grid. When i click on it the whole child table i am trying to add to disappears.
i have tried to follow the advice from here but the issue remains.
My code behind is as follows:
My page is:
What am i missing here?
any help is greatly appreciated.
thanks
Jordan
i have tried to follow the advice from here but the issue remains.
My code behind is as follows:
| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (Assembly.GetAssembly(typeof(ScriptManager)).FullName.IndexOf("3.5") != -1) |
| { |
| NavGrid.MasterTableView.FilterExpression = @"it[""ParentId""] = Convert.DBNull"; |
| } |
| else |
| { |
| NavGrid.MasterTableView.FilterExpression = "ParentId IS NULL"; |
| } |
| } |
| protected void NavGrid_ItemDeleted(object source, Telerik.Web.UI.GridDeletedEventArgs e) |
| { |
| } |
| protected void NavGrid_ItemInserted(object source, Telerik.Web.UI.GridInsertedEventArgs e) |
| { |
| } |
| protected void NavGrid_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e) |
| { |
| } |
| protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e) |
| { |
| if (e.Column.IsBoundToFieldName("Id")) |
| { |
| ((GridBoundColumn)e.Column).ReadOnly = true; |
| } |
| } |
| protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) |
| { |
| } |
| protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| } |
| public void CreateExpandCollapseButton(GridItem item, string columnUniqueName) |
| { |
| } |
| protected void NavGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
| { |
| NavGrid.DataSource = NavDataSource; |
| } |
| protected void NavGrid_ItemCommand(object source, GridCommandEventArgs e) |
| { |
| if (e.CommandName == RadGrid.DeleteCommandName) |
| { |
| NavDataSource.Delete(); |
| } |
| if (e.CommandName == RadGrid.UpdateCommandName) |
| { |
| NavDataSource.Update(); |
| } |
| if (e.CommandName == RadGrid.PerformInsertCommandName) |
| { |
| NavDataSource.Insert(); |
| } |
| } |
My page is:
| <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Admin_Navigations.aspx.cs" Inherits="FEP.Admin_Navigations" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" > |
| <head runat="server"> |
| <title>Admin Navigations</title> |
| <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> |
| <script type="text/javascript"> |
| //This function is called from the Explorer.aspx page |
| function OnFileSelected(wnd, fileSelected) { |
| //NEW: Insert the returned value in the textbox with currentInputID |
| var textbox = $get(currentInputID); |
| textbox.value = fileSelected.substr(1); |
| } |
| var currentInputID = null; |
| function OpenFileExplorerDialog(inputID) { |
| var wnd = $find("<%= ExplorerWindow.ClientID %>"); |
| wnd.show(); |
| //NEW: Set the ID of the textbox in a global variable |
| currentInputID = inputID; |
| } |
| </script> |
| </telerik:RadScriptBlock> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <div> |
| <telerik:RadGrid ID="NavGrid" runat="server" DataSourceID="NavDataSource" |
| ShowStatusBar="True" AllowAutomaticDeletes="True" |
| AllowAutomaticInserts="True" AllowAutomaticUpdates="True" |
| AutoGenerateColumns="False" onitemdeleted="NavGrid_ItemDeleted" |
| oniteminserted="NavGrid_ItemInserted" |
| onitemupdated="NavGrid_ItemUpdated" |
| oncolumncreated="RadGrid1_ColumnCreated" onitemcommand="NavGrid_ItemCommand" |
| onitemcreated="RadGrid1_ItemCreated" onitemdatabound="RadGrid1_ItemDataBound" |
| onneeddatasource="NavGrid_NeedDataSource"> |
| <MasterTableView DataSourceID="NavDataSource" TableLayout="Fixed" |
| style="width:auto;" DataKeyNames="Id, ParentId" commanditemdisplay="Top" HierarchyDefaultExpanded="true"> |
| <SelfHierarchySettings ParentKeyName="ParentId" KeyName="Id" /> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridEditCommandColumn ButtonType="ImageButton" HeaderText="Edit"> |
| <HeaderStyle Width="35px" /> |
| </telerik:GridEditCommandColumn> |
| <telerik:GridBoundColumn DataField="Id" HeaderText="Id" UniqueName="Id" MaxLength="10" ReadOnly="True" ForceExtractValue="Always"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ParentId" HeaderText="Parent Id" UniqueName="ParentId" MaxLength="10" ReadOnly="True" ForceExtractValue="Always"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name" MaxLength="50"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Target" HeaderText="Target" UniqueName="Target" MaxLength="50"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Control" HeaderText="Control" UniqueName="Control" MaxLength="50"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Content" HeaderText="Content" UniqueName="Content" MaxLength="50"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ItemOrder" HeaderText="Item Order" UniqueName="ItemOrder" |
| MaxLength="50" ConvertEmptyStringToNull="False"> |
| </telerik:GridBoundColumn> |
| <telerik:GridTemplateColumn HeaderText="Navigation Image" DataField="Image" DataType="System.String" |
| UniqueName="NavImage"> |
| <ItemTemplate> |
| <asp:Image ID="SiteImage" Height="100px" Width="100px" AlternateText='<%#Bind("Name") %>' |
| runat="server" ImageUrl='<%#Bind("Image") %>' /> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="fileName" Columns="50" Text='<%#Bind("Image") %>' /> |
| <input type="button" onclick="OpenFileExplorerDialog('<%#Container.FindControl("fileName").ClientID %>'); return false;" |
| value="Open ..." /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridButtonColumn CommandName="Delete" ConfirmText="Are you sure you want to delete this record?" |
| ConfirmTitle="Delete?" Text="Delete" UniqueName="DeleteColumn" ButtonType="ImageButton" |
| HeaderText="Delete"> |
| <HeaderStyle Width="50px" /> |
| </telerik:GridButtonColumn> |
| <telerik:GridButtonColumn CommandName="GoToNavigations" Text="Go to Navigations..." |
| UniqueName="GoNav"> |
| </telerik:GridButtonColumn> |
| <telerik:GridButtonColumn CommandName="GoToQuestions" Text="Go to Quesitons..." |
| UniqueName="GoQuest"> |
| </telerik:GridButtonColumn> |
| <telerik:GridButtonColumn CommandName="GoToIcons" Text="Go to Icons..." |
| UniqueName="GoIcon"> |
| </telerik:GridButtonColumn> |
| </Columns> |
| <EditFormSettings> |
| <EditColumn UniqueName="EditCommandColumn"> |
| </EditColumn> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings EnablePostBackOnRowClick="False" EnableRowHoverStyle="True" |
| EnableAlternatingItems="False" AllowExpandCollapse="True"> |
| <Selecting AllowRowSelect="True" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| </div> |
| <asp:SqlDataSource runat="server" ConnectionString="<%$ ConnectionStrings:MySQL %>" |
| SelectCommand="Select Id, ParentId, Name, Target, Control, Content, Image, ItemOrder FROM Navigation" |
| ID="NavDataSource" ProviderName="<%$ ConnectionStrings:MySQL.ProviderName %>" |
| ConflictDetection="CompareAllValues" OldValuesParameterFormatString="original_{0}" |
| InsertCommand="INSERT INTO Navigation(ParentId, Name, Target, Control, Content, Image, ItemOrder) VALUES (?ParentId, ?Name, ?Target, ?Control, ?Content, ?Image, ?ItemOrder)" |
| DeleteCommand="DELETE FROM Navigation WHERE Id = ?original_Id AND ((ParentId = ?original_ParentId) OR (ParentId is null AND ?ParentId is null)) AND Name = ?original_Name AND ((Target = ?original_Target) OR (Target is null AND ?original_Target is null)) AND Control = ?original_Control AND ((Content = ?original_Content) OR (Content is null AND ?original_Content is null)) AND ((Image = ?original_Image) OR (Image is null AND ?original_Image is null)) AND ItemOrder = ?original_ItemOrder" |
| UpdateCommand="UPDATE Navigation SET ParentId = ?ParentId, Name = ?Name, Target = ?Target, Control = ?control, Content = ?Content, Image = ?Image, ItemOrder = ?ItemOrder WHERE Id = ?original_Id AND ((ParentId = ?original_ParentId) OR (ParentId is null AND ?ParentId is null)) AND Name = ?original_Name AND ((Target = ?original_Target) OR (Target is null AND ?original_Target is null)) AND Control = ?original_Control AND ((Content = ?original_Content) OR (Content is null AND ?original_Content is null)) AND ((Image = ?original_Image) OR (Image is null AND ?original_Image is null)) AND ItemOrder = ?original_ItemOrder" > |
| <DeleteParameters> |
| <asp:Parameter Name="original_Id" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_ParentId" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Name" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Target" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Control" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Content" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Image" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_ItemOrder" Type="Int32" ConvertEmptyStringToNull="False" /> |
| </DeleteParameters> |
| <UpdateParameters> |
| <asp:Parameter Name="Id" Type="Int32" /> |
| <asp:Parameter Name="ParentId" Type="Int32" /> |
| <asp:Parameter Name="Name" Type="String" /> |
| <asp:Parameter Name="Target" Type="Int32" /> |
| <asp:Parameter Name="Control" Type="String" /> |
| <asp:Parameter Name="Content" Type="Int32" /> |
| <asp:Parameter Name="Image" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="ItemOrder" Type="Int32" /> |
| <asp:Parameter Name="original_Id" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_ParentId" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Name" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Target" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Control" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Content" Type="Int32" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="original_Image" Type="String" ConvertEmptyStringToNull="False" /> |
| </UpdateParameters> |
| <InsertParameters> |
| <asp:Parameter Name="ParentId" Type="Int32" /> |
| <asp:Parameter Name="Name" Type="String" /> |
| <asp:Parameter Name="Target" Type="Int32" /> |
| <asp:Parameter Name="Control" Type="String" /> |
| <asp:Parameter Name="Content" Type="Int32" /> |
| <asp:Parameter Name="Image" Type="String" ConvertEmptyStringToNull="False" /> |
| <asp:Parameter Name="ItemOrder" Type="Int32" /> |
| </InsertParameters> |
| <SelectParameters> |
| </SelectParameters> |
| </asp:SqlDataSource> |
| <telerik:RadWindow runat="server" Width="530px" Height="550px" VisibleStatusbar="false" |
| NavigateUrl="Admin_ImageExplorer.aspx?PathType=Navigation" ID="ExplorerWindow" Modal="true" |
| Behaviors="Close,Move"> |
| </telerik:RadWindow> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="NavGrid"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="NavGrid" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| </form> |
| </body> |
| </html> |
any help is greatly appreciated.
thanks
Jordan