У меня есть повторитель, и элементы можно редактировать с помощью кнопки редактирования, которая открывает FormView в режиме редактирования. Изначально formView невидим, а ретранслятор видим. После нажатия на правку повторитель становится невидимым, тогда вид формы становится видимым с элементом для редактирования.
После внесения изменений пользователь нажимает кнопку «Обновить». Это делает вид формы невидимым, а ретранслятор видимым.
Проблема в том, что вид формы становится невидимым, но ретранслятор не становится видимым. Я думаю, это связано с тем, что formview находится внутри панели обновлений, а повторитель - нет? При нажатии кнопки «Обновить» изменяются только элементы на панели обновлений, поскольку это только частичное обновление страницы.
Я не могу разместить повторитель на панели обновления, поскольку существует требование, чтобы в общедоступном представлении не использовался JavaScript.
Кто-нибудь знает, как я мог заставить ретранслятор появляться снова?
<asp:Repeater id="resultsRepeater" runat="server" DataSourceID="vehiclesDataSource" >
<ItemTemplate>
<asp:Label id="makeLabel" runat="server" Text='<%# Eval("Make") %>' />
<asp:Button id="editButton" runat="server" Text="Edit" CommandArgument='<%# Eval("Id") %>' OnClick="EditButton_Click" />
</ItemTemplate>
<asp:Repeater>
<asp:UpdatePanel ID="updatePanel" runat="server">
<ContentTemplate>
<asp:Panel id="insertUpdatePanel" runat="server" Visible="false">
<asp:FormView id="editformview" runat="server" DataKeyNames="Id" Datasourceid="VehiclesEditDataSource" >
<EditItemTemplate>
<uc:VehiclesEdit ID="VehiclesEdit" runat="server" />
<asp:Button id="updateButton" runat="server" OnClick="Update_Click" />
</EditItemTemplate>
</asp:FormView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
protected void EditButton_Click(object sender, EventArgs e)
{
resultsRepeater.Visible = false;
insertUpdatePanel.Visible = true;
}
protected void Update_Click(object sender, EventArgs e)
{
resultsRepeater.Visible = true;
insertUpdatePanel.Visible = false;
}