ユーザーがグリッドビューから選択したときにサーバーから更新されるいくつかのコントロールを含むグリッドビューがあります。
ドロップダウン リストから選択した後、ユーザーは行のテキスト ボックスにパーセンテージを入力できます。いくつかの計算を実行し、Gridview のアイテム テンプレート内のスパンに出力する JavaScript があります。
これはすべて機能しますが、ユーザーが任意の行で別のドロップダウン リストを選択すると、グリッドビューのすべてのスパンが空白にリセットされます (asp.net と html の両方のさまざまなコントロールで試しました)。
これはすべて更新パネル内にあります。
コード:
<asp:GridView runat="server" ID="gdvIngredients" AutoGenerateColumns="false" CssClass="table table-stripped"
GridLines="None" Visible="false" ShowFooter="true" EnableViewState="true">
<Columns>
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:Label runat="server" ID="lblId" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ingredient" ItemStyle-Width="12%">
<ItemTemplate>
<asp:DropDownList runat="server" ID="ddlName" AutoPostBack="true" OnSelectedIndexChanged="ddlName_SelectedIndexChanged"
ForeColor="Black" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="%" ItemStyle-Width="6%">
<ItemTemplate>
<asp:TextBox runat="server" Text="0" Width="50px" ID="txtPercentage" onkeyup="calculate(this);"
ForeColor="Black" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="kj" ItemStyle-Width="6%">
<ItemTemplate>
<asp:Label runat="server" ID="lblKj" CssClass="Kj" Style="display: none;" />
<span runat="server" id="spnKj" class="NewKj">0</span>
</ItemTemplate>