Bound DataGrid using nested XML

Discussion in 'ASP .Net Datagrid Control' started by Christopher Jedlicka, Nov 9, 2003.

  1. Hi,

    I am trying to use a datagrid control to display hierarchical data in
    a flat format essentially in a master-detail relationship. i.e.

    <Data>
    <Customer CustomerName="Customer1">
    <Order OrderNumber="1">
    <Item ItemName="Item1"></Item>
    <Item ItemName="Item2"></Item>
    </Order>
    <Order OrderNumber="2">
    <Item ItemName="Item3"></Item>
    <Item ItemName="Item4"></Item>
    </Order>
    </Customer>
    <Customer CustomerName="Customer2">
    <Order OrderNumber="3">
    <Item ItemName="Item1"></Item>
    <Item ItemName="Item2"></Item>
    </Order>
    </Customer>
    </Data>

    When I load the xml data into the dataset, .NET creates the
    relationships for me. My confusion happens when I bind this data to
    my datagrid. I have set AutoGenerateColumns to false and manually
    added each column. I can't seem to figure out how to set the
    DataField for relational columns. i.e.

    DataSet ds = new DataSet();
    DataGrid dg = new DataGrid();
    BoundColumn colCustomerName = new BoundColumn();
    BoundColumn colOrderNumber = new BoundColumn();
    BoundColumn colItemName = new BoundColumn();

    ds.ReadXml("Data.xml", XmlReadMode.InferSchema);

    colCustomerName.DataField =
    ds.Tables["Customer"].Columns["CustomerName"].toString();
    colOrderNumber.DataField =
    ds.Tables["Order"].Columns["OrderNumber"].toString();
    colItemName.DataField =
    ds.Tables[Item].Columns["ItemName"].toString();

    dg.DataSource = ds;
    dg.DataBind();

    I tried to build in the relationships by doing this a little bit
    different, but this didn't seem to work either:

    colCustomerName.DataField =
    ds.Relations["Customer_Order"].ParentTable.Columns["CustomerName"].toString();
    colOrderNumber.DataField =
    ds.Relations["Order_Item"].ParentTable.Columns["OrderNumber"].toString();
    colItemName.DataField = "ItemName";

    dg.DataSource = ds;
    dg.DataMember = "Item";
    dg.DataBind();

    How do I have to reference the DataSource and DataField properties to
    display this relational data? I'd be especially grateful for any
    assistance. Thanks.

    -Chris
     
    Christopher Jedlicka, Nov 9, 2003
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Christopher Jedlicka

    Bound DataGrid using nested XML

    Christopher Jedlicka, Nov 9, 2003, in forum: ASP .Net
    Replies:
    3
    Views:
    593
    Natty Gur
    Nov 11, 2003
  2. sunil panda

    Lower bound & Upper bound

    sunil panda, Dec 25, 2003, in forum: Java
    Replies:
    9
    Views:
    7,252
    thushara wijeratna
    Oct 7, 2008
  3. Rhiner Dan
    Replies:
    1
    Views:
    748
    Mike Wahler
    Mar 27, 2005
  4. Mario Krsnic
    Replies:
    0
    Views:
    382
    Mario Krsnic
    Jun 23, 2006
  5. Phillip Vong
    Replies:
    0
    Views:
    415
    Phillip Vong
    Jul 27, 2006
Loading...

Share This Page