В моем контроле ascx у меня есть кнопка, в которой я вызываю обработчик событий, и из этого обработчика событий я вызываю метод, который находится в презентаторе
на странице ascx
public event EventHandler<EventArgs> Add;
protected void btnAdd_Click(object sender, EventArgs e)
{
if (Add != null)
Add(sender, e);
}
на докладчике
AddListView.Add += delegate(object sender, EventArgs e)//AddListView is a Interface
{
Add();
};
, когда я нажимаю на btnAdd, он работает нормально и запись добавляется, но когда я обновляю страницу браузера, с помощью F5 и щелчка мышью снова btnAdd срабатывает.Я попытался использовать
// Page refresh F5 btn press
protected override void LoadViewState(object savedState)
{
object[] AllStates = (object[])savedState;
base.LoadViewState(AllStates[0]);
_refreshState = bool.Parse(AllStates[1].ToString());
_isRefresh = _refreshState == bool.Parse(Session["__ISREFRESH"].ToString());
}
// Page refresh F5 btn press
protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] AllStates = new object[2];
AllStates[0] = base.SaveViewState();
AllStates[1] = !(_refreshState);
return AllStates;
}
Затем он работает нормально, но после обновления я не могу снова щелкнуть btnAdd, для щелчка по btnAdd, снова я делаю обновление, затем он работает нормально ..
Я вызываю этот элемент управления на каком-то другом элементе управления, и, поскольку у меня есть Datalist, нажатие на страницу элемента снова выполнит обратную передачу.
Как остановить автоматическое нажатие кнопки F5 или обновление страницы без нажатия btnAdd.
Пожалуйста, кто-нибудь, помогите мне ..