У меня 4 кнопки на странице. Каждая кнопка открывает модальное окно и позволяет пользователю вводить данные в форме. Когда пользователь нажимает кнопку сохранения в модальном режиме, на странице появляется ListView с предоставленными данными.
Кнопка, которую пользователь щелкнул, чтобы открыть модальное окно, имеет значение visible = false, поэтому она исчезла, когда строка добавлена в ListView. Теперь есть 3 кнопки, и то же самое касается тех; когда пользователь нажимает кнопку, появляется модальное окно, а когда отправляется модальная форма, кнопка исчезает, и в ListView добавляется строка.
В строке ListView есть кнопка удаления. При нажатии этой кнопки строка удаляется, и кнопка, которая была первоначально нажата, чтобы добавить эту строку (и открыть модальное окно), ДОЛЖНА появиться снова, но это не так. Строка исчезает, но мне нужно обновить страницу, прежде чем кнопка вернется. На главной странице есть ScriptManager, так что я думаю, что это проблема частичного обновления AJAX. Я пытался добавить разные события, но не могу найти тот, который срабатывает в нужное время.
Я использую ObjectDataSource для заполнения ListView, а данные поступают из базы данных, обернутой в бизнес-объект.
Этот код загружает бизнес-объект в список <> и проверяет, вставил ли пользователь элемент определенного типа. Если он это сделал, кнопка, которую он использовал, чтобы открыть модал, скрыта. Это прекрасно работает (возможно, не самый элегантный)
_goals = GoalManager.GetGoalsByUser(UserID);
if (_goals != null)
{
foreach (Goal _goalinlist in _goals)
{
if (_goalinlist.GoalType == 1)
{
Button1.Visible = false;
goalid1 = true;
}
if (_goalinlist.GoalType == 2)
{
Button2.Visible = false;
goalid2 = true;
}
if (_goalinlist.GoalType == 3)
{
Button3.Visible = false;
goalid3 = true;
}
if (_goalinlist.GoalType == 4)
{
Button4.Visible = false;
goalid4 = true;
}
}
}
Как видите, я попытался установить логическое значение, а затем проверить его при перезагрузке страницы. Но проблема (я полагаю) состоит в том, что вся страница не обновляется при нажатии кнопки удаления в ListView.
Это кнопка удаления в ListView:
<asp:ImageButton ID="ImageButton2" runat="server" CommandName="Delete" CausesValidation="false"
ToolTip="Delete" CommandArgument='<%#Eval("GoalID")%>' ImageUrl="delete.gif"
OnClientClick="return confirm('Delete this post?');" CssClass="button"/>
Полагаю, вопрос в том, как сделать так, чтобы кнопка снова появлялась сразу после нажатия кнопки ListView?