Как я могу заставить действия на стороне сервера (C # .NET) происходить до того, как действия на стороне клиента при нажатии кнопки, чтобы избежать блокировки всплывающего окна? - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь создать три кнопки.ButtonAdd добавляет новый вводный экран и открывает редактор в новом окне, чтобы внести изменения в указанный экран.Кнопка 1 отображается только в том случае, если пользователь еще не добавил начальный экран.ButtonRemove удаляет начальный экран.ButtonEdit открывает редактор для внесения изменений на экране вступления.ButtonRemove и ButtonEdit видны только в том случае, если пользователь уже добавил начальный экран.У меня проблема с ButtonAdd.

ButtonAdd необходимо выполнить серверный вызов, чтобы фактически создать объект и сохранить его в базе данных:

serverClickFunction(object sender, EventArgs e)
{
    activity.addIntroScreen();
}

ButtonAdd также необходимо выполнить клиентский вызов, чтобы открыть редактор,URL, который открывает редактор, должен знать определенную информацию о новом объекте (screenid и contentid):

function OpenEditIntro() {
    var tviewer = window.open('../library/edit.aspx?&ScreenID=<%# 
        this.introScreenID %>&contentID=<%# this.introContentID%>')
    tviewer.focus();
}

Таким образом, по сути, сначала необходимо выполнить серверный вызов.ИЛИ иначе клиентский вызов не знает, что использовать для screenID или contentID.Поэтому я попытался вызвать клиентскую функцию с сервера или кода.Вот так:

serverClickFunction(object sender, EventArgs e)
    {
        activity.addIntroScreen();
        ScriptManager.RegisterStartupScript(this, this.GetType(), 
           "openEdit", "OpenEditIntro();", true);
    }

Это сработало великолепно.За исключением того, что блокировщикам всплывающих окон не понравилось это.Таким образом, они не позволят всплывающему окну редактирования.Есть ли способ обойти блокировку этого всплывающего окна?Или есть другой подход к этой проблеме, который я просто не рассматриваю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...