【发布时间】:2012-04-04 20:28:15
【问题描述】:
我有一个类似于以下代码的 ASP.NET 网站:
.aspx
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<table id="RatesTable">
<tr>
<td>Hotel</td>
<td> </td>
</tr>
<tr id="NewRateRow">
<td>
<asp:DropDownList ID="TxtHotel" runat="server" OnSelectedIndexChanged="TxtHotel_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</td>
<td>
<a href="javascript:AddHotelPackRate()">Add</a>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
AddHotelPackRate JS 函数,读取下拉列表中的值并在表的开头“绘制”一个包含该值的新行。 问题是,在此之后,当再次执行 SelectIndexChanged 函数时,之前添加的行现在消失了。
有没有办法避免在回发后丢失此类信息?
【问题讨论】:
-
您应该在回发后再次添加(重新创建),这样您就可以将重新创建所需的信息保存在隐藏字段中,并在回发后读取此信息以重新创建附加行。但是,问题是在更改下拉列表中选择的项目后是否真的需要回发?这样对用户来说可能更直观,您可以避免这个问题。
-
@Lucas 我需要回发以从所选值中检索一些信息。我想过将信息保存在隐藏字段中,然后重新创建行,问题是它不只是上例中的一个单元格,最终会有数百行,我绝对不想访问添加每一行后的db..但我想没有其他解决方案
标签: c# javascript asp.net