I have created a WebHierarchicalDataSource with 2 underlying SqlDataSource controls with a simple parent-child relationship that I am attempting to bind to a grid. The grid displays all data correctly with all parent and child rows, however when a row is updated the change is not posted back to the SQL server.
To troubleshoot, I created a second grid on the same page and bound it directly to the parent SqlDataSource and updates work fine on that grid - settings on both grids are exactly the same other than the data source that they point to.
Am I missing something?!? Thanks in advance for helping a noob...
Hello,
The setup seems perfectly valid, the only thing that might be missing is to auto-generate the Update/Insert/Delete/Read command oof the underlying datasources - they are not generated by default. You can switch to design mode, click "Configure" for both datasource and then there are a couple of tabs on the righr (I think they were called "Advanced") and there you can generate the commands.
Was this the problem? Other than that, I just tried this setup of the grid (with Access, but same principles should apply) and it worked just fine
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ultrawebgrid_crud.aspx.cs" Inherits="_Default" %><%@ Register Assembly="Infragistics35.Web.v8.2, Version=8.2.20082.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.Web.UI.DataSourceControls" TagPrefix="aikido" %><%@ Register Assembly="Infragistics35.WebUI.UltraWebGrid.v8.2, Version=8.2.20082.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.WebUI.UltraWebGrid" TagPrefix="igtbl" %> <!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>Untitled Page</title></head><body> <form id="form1" runat="server"> <asp:ScriptManager runat="server" ID="ScriptManager1" /> <igtbl:UltraWebGrid ID="UltraWebGrid1" runat="server" Width="725px" DataSourceID="WebHierarchicalDataSource1" oninitializerow="UltraWebGrid1_InitializeRow"> <Bands> <igtbl:UltraGridBand BaseTableName="Categories" DataKeyField="CategoryID"> <AddNewRow Visible="NotSet" View="NotSet"> </AddNewRow> </igtbl:UltraGridBand> <igtbl:UltraGridBand BaseTableName="Products" DataKeyField="ProductID"> <AddNewRow Visible="NotSet" View="NotSet"> </AddNewRow> </igtbl:UltraGridBand> </Bands> <DisplayLayout Name="UltraWebGrid1" BorderCollapseDefault="Separate" RowHeightDefault="20px" ViewType="Hierarchical" Version="4.00" AllowUpdateDefault="Yes"> <FrameStyle BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" Height="200px" Width="325px"> </FrameStyle> <Pager> <PagerStyle BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px"> <BorderDetails ColorLeft="White" ColorTop="White" /> </PagerStyle> </Pager> <EditCellStyleDefault BorderStyle="None" BorderWidth="0px"> </EditCellStyleDefault> <HeaderStyleDefault BackColor="LightGray" BorderStyle="Solid"> <BorderDetails ColorLeft="White" ColorTop="White" /> </HeaderStyleDefault> <RowStyleDefault BackColor="White" BorderColor="Gray" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt"> <Padding Left="3px" /> <BorderDetails ColorLeft="White" ColorTop="White" /> </RowStyleDefault> <AddNewBox> <BoxStyle BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px"> <BorderDetails ColorLeft="White" ColorTop="White" /> </BoxStyle> </AddNewBox> <ActivationObject BorderColor="" BorderWidth=""> </ActivationObject> </DisplayLayout> </igtbl:UltraWebGrid> <aikido:WebHierarchicalDataSource ID="WebHierarchicalDataSource1" runat="server"> <DataRelations> <aikido:DataRelation ChildColumns="CategoryID" ChildDataViewID="AccessDataSource2_DefaultView" ParentColumns="CategoryID" ParentDataViewID="AccessDataSource1_DefaultView" /> </DataRelations> <DataViews> <aikido:DataView ID="AccessDataSource1_DefaultView" DataMember="DefaultView" DataSourceID="AccessDataSource1" /> <aikido:DataView ID="AccessDataSource2_DefaultView" DataMember="DefaultView" DataSourceID="AccessDataSource2" /> </DataViews> </aikido:WebHierarchicalDataSource> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Northwind.mdb" SelectCommand="SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"> </asp:AccessDataSource> <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/Northwind.mdb" SelectCommand="SELECT [ProductID], [ProductName], [CategoryID] FROM [Products]"> </asp:AccessDataSource> </form></body></html>
Thanks, Rumen,
I did generate the update/insert/delete statements, however i do remember configuring the statements to use optimistic concurrency. This caused problems on one of my other data sources when dealing with null values (you can see my response to a related post at http://forums.infragistics.com/forums/t/1177.aspx for details). However, none of the fields in these 2 tables should have any null values.
I will have to verify this when I get back to the office later this week, though...I will drop a response out here if that turns out to be the case. In the meantime, any other ideas for me to try would be greatly appreciated.