Мне передан огромный проект Webforms, который я пытаюсь понять, и у меня возникла проблема, когда панель обновлений дублирует большую часть своего содержимого. Код aspx для панели огромен, длиной в сотни строк, но в основном он выглядит как этот простой пример, только с большим количеством asp:TextBox
и asp:ListBox
.
<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" RenderMode="Block" UpdateMode="Conditional">
<ContentTemplate>
<div><table><tbody><tr><td>
<label>Search</label><asp:TextBox ID="Search" runat="server" />
<asp:LinkButton runat="server" OnClick="find_Click" >Find</asp:LinkButton>
</td></tr></tbody></table></div>
<div id="a"><table><tbody><tr><td>
<label>Result</label><asp:TextBox ID="Result" runat="server" />
</td></tr></tbody></table></div>
</ContentTemplate>
</asp:UpdatePanel>
и код, подобный этому.
public void find_Click(Object sender, EventArgs e)
{
Result.Text = "oranges";
}
Когда вы нажмете кнопку LinkButton, я ожидаю увидеть в результате раздел <div id="a">
, но с текстом «апельсины» в TextBox. На самом деле вы получаете <div id="a">
с 'апельсинами', за которым следует оригинальное <div id="a">
с пустым TextBox. Хуже всего то, что он не делает этого в этом простом примере, даже на странице, которую я создал, у которой были все оригинальные asp:TextBox
и asp:ListBox
, но заполненные фиктивными данными. Может кто-нибудь указать мне какие-либо хорошие способы решения этой проблемы?