Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>What you are after is something like a nested ListView. Nesting these things gets messy but this should work:</p> <pre><code>&lt;asp:GridView runat="server" ID="EntityGridView" AutoGenerateColumns="False" EditIndex="0" OnRowUpdating="EntityGridView_RowUpdating"&gt; &lt;Columns&gt; &lt;asp:TemplateField HeaderText="Name"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="NameLabel" runat="server" Text='&lt;%# Bind("Name") %&gt;'&gt;&lt;/asp:Label&gt; &lt;/ItemTemplate&gt; &lt;EditItemTemplate&gt; &lt;asp:TextBox ID="NameTextBox" runat="server" Text='&lt;%# Bind("Name") %&gt;'&gt;&lt;/asp:TextBox&gt; &lt;/EditItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField&gt; &lt;ItemTemplate&gt; &lt;asp:GridView runat="server" DataSource='&lt;%# Eval("Fields") %&gt;'/&gt; &lt;/ItemTemplate&gt; &lt;EditItemTemplate&gt; &lt;asp:ListView runat="server" DataSource='&lt;%# Eval("Fields") %&gt;' ID="FieldListView"&gt; &lt;LayoutTemplate&gt; &lt;asp:PlaceHolder ID="itemPlaceholder" runat="server" /&gt; &lt;/LayoutTemplate&gt; &lt;ItemTemplate&gt; &lt;asp:TextBox Text='&lt;%# Container.DataItem %&gt;' runat="server" ID="FieldValue"/&gt;&lt;br /&gt; &lt;/ItemTemplate&gt; &lt;/asp:ListView&gt; &lt;/EditItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:CommandField ShowEditButton="True" /&gt; &lt;/Columns&gt; &lt;/asp:GridView&gt; </code></pre> <p>And your update method will look like:</p> <pre><code>protected void EntityGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) { var updatedEntity = new Entity {Fields = new List&lt;string&gt;()}; var row = EntityGridView.Rows[e.RowIndex]; var nameTextBox = (TextBox) row.FindControl("NameTextBox"); updatedEntity.Name = nameTextBox.Text; var fieldListView = (ListView) row.FindControl("FieldListView"); foreach (var dataItem in fieldListView.Items) { var fieldValueTextBox = (TextBox)dataItem.FindControl("FieldValue"); updatedEntity.Fields.Add(fieldValueTextBox.Text); } // Do your save etc here } </code></pre> <p>Then you just bind your list of entities to the GridView.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload