Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I update multiple Gridviews across multiple User Controls while the Gridviews and User Controls are inside Update Panels?
    primarykey
    data
    text
    <p>I have a page with an ASP Place Holder wrapped in an Update Panel on it, I load a single User Control with another Place Holder wrapped in an Update Panel on it. I then load this newest Place Holder with multiple User Controls, each of which contains a Gridview wrapped in an Update Panel.</p> <p>The data in each Gridview is based on the data in "previous" Gridviews, so when the user edits a row the changes cascade down the Gridviews, this is where my problem lies. After clicking the save button nothing visibly happens (all rows in the database are updated correctly) until I click another button anywhere on the page at which point all the changes are visibly updated in the Gridviews.</p> <p>I've tried everything I can think of to fix this, no end of playing around with Update Panel options and positions, triggering an additional button click via JavaScript and any other solution I could find that seemed relevant, though none have got me any nearer to where I want to be.</p> <p>If I've managed to convey my problems in such a way that anyone can understand I'd be grateful for insight, please ask questions if you feels I've not described something intelligibly.</p> <p>Here are the three levels and page/user control/usercontrol:</p> <p>Page:</p> <pre><code>&lt;div id="divCustomerProductInput"&gt; &lt;asp:UpdatePanel ID="udpSalesOrders" runat="server" UpdateMode="Always"&gt; &lt;ContentTemplate&gt; &lt;asp:PlaceHolder ID="plhCsCustomerproductInput" runat="server"&gt;&lt;/asp:PlaceHolder&gt; &lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt; &lt;/div&gt; </code></pre> <p>First User Control loaded into the placeholder above:</p> <pre><code>&lt;asp:UpdatePanel ID="udpSalesOrders" runat="server" UpdateMode="Always" &gt; &lt;ContentTemplate&gt; &lt;asp:PlaceHolder runat="server" ID="plhProductionProcess"&gt;&lt;/asp:PlaceHolder&gt; &lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt; </code></pre> <p>Second User Control loaded into the placeholder above multiple times:</p> <pre><code>&lt;asp:UpdatePanel ID="udpPPI" runat="server" UpdateMode="Always"&gt; &lt;ContentTemplate&gt; &lt;%-- MANUFACTURE--%&gt; &lt;asp:GridView ID="gdvProductionProcessIngredients" AutoGenerateColumns="false" runat="server"&gt; &lt;Columns&gt; &lt;asp:TemplateField Visible="false"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="lblId" runat="server" Text='&lt;%# Eval("Id") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Ingredient Description" ItemStyle-Width="21%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="txtIngredientDescription" runat="server" Text='&lt;%# Eval("IngredientDescription") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Ingredient Code" ItemStyle-Width="14%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="txtIngredientCode" runat="server" Text='&lt;%# Eval("RmId") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="From" ItemStyle-Width="10%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="txtParentDepartment" runat="server" Text='&lt;%# Eval("ParentDepartment") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Quantity (%)" ItemStyle-Width="10%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:TextBox ID="txtQuantityKg" runat="server" Text='&lt;%# Eval("OldestAncestorQuantityPercent") %&gt;' ForeColor="Black"&gt;&lt;/asp:TextBox&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Input Cost / Kg (£)" ItemStyle-Width="13%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="lblCost" runat="server" Text='&lt;%# Eval("InputCostKg") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Yield (%)" ItemStyle-Width="10%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:TextBox ID="txtYield" runat="server" Text='&lt;%# Eval("Yield") %&gt;' ForeColor="Black"&gt;&lt;/asp:TextBox&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="Output Cost / Kg (£)" ItemStyle-Width="14%" ControlStyle-Width="95%"&gt; &lt;ItemTemplate&gt; &lt;asp:Label ID="lblCostPerKg" runat="server" Text='&lt;%# Eval("OutputCostKg") %&gt;'&gt;&lt;/asp:Label&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField ItemStyle-Width="6%" ControlStyle-Width="95%" ItemStyle-HorizontalAlign="Center"&gt; &lt;ItemTemplate&gt; &lt;asp:Button ID="btnDeleteIngredient" CommandName="REMOVE" CommandArgument='&lt;%# Eval("Id") %&gt;' CssClass="btn danger hover" runat="server" Text="Remove" /&gt;&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;/Columns&gt; &lt;/asp:GridView&gt; &lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt; </code></pre> <p>Ok, here's the binding and updating code:</p> <pre><code> Dim myCsProductProductionProcessIngredients As New v2.Model.CsProductProductionProcessIngredientCollection myCsProductProductionProcessIngredients.LoadByPPPId(_ProductProductionProcessId) Me.gdvProductionProcessIngredients.DataSource = myCsProductProductionProcessIngredients Me.gdvProductionProcessIngredients.DataBind() Me.udpPPI.Update() </code></pre> <p>Thanks, Korv</p>
    singulars
    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.
 

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