Функция обратного вызова?

1

Мне нужно вызвать функцию Javascript в моем коде, но не стрелять. Я предоставляю детали, что я делаю?

  • У меня есть кнопка ввода на странице, которая вызывает функцию javascript. Там я загружаю еще одну страницу ProfilePic.aspx. ProfilePic.aspx имеет FileUpload, OK и кнопку cancle

    <input type=button value="Change Image" onclick="javascript:SelectUserImage()" />
    
  • Функции Javascript:

    <script type="text/javascript">
    function SelectUserImageCallback(ret) {
        var imgId = 'ctl00_PlaceHolderMain_prof_imgUser';
        var clearId = 'ctl00_PlaceHolderMain_prof_hidImageURL';
        if (ret) {
            if (ret == '__RESET__') {
                document.getElementById(imgId).src = '\u002f_layouts\u002fimages\u002fno_pic.gif';
                document.getElementById('ctl00_PlaceHolderMain_prof_hidImageURL').value = '';
                document.getElementById(clearId).style.display = 'none';
            }
            else {
                document.getElementById(imgId).onload = 'imgResizeMax(\'ctl00_PlaceHolderMain_prof_imgUser\', 100);imgResizeTbl(\'ctl00_PlaceHolderMain_prof_imgUser\');';
                document.getElementById(imgId).src = ret;
                document.getElementById('ctl00_PlaceHolderMain_prof_hidImageURL').value = ret;
                setTimeout('imgResizeMax(\'ctl00_PlaceHolderMain_prof_imgUser\', 100);imgResizeTbl(\'ctl00_PlaceHolderMain_prof_imgUser\');', 1);
                setTimeout('imgResizeMax(\'ctl00_PlaceHolderMain_prof_imgUser\', 100);imgResizeTbl(\'ctl00_PlaceHolderMain_prof_imgUser\');', 100);
                document.getElementById(clearId).style.display = '';
            }
        }
    }
    function SelectUserImage() {
        var href = '\u002f_layouts\u002fProfilePic.aspx';
    
    
    
    var features = 'resizable: yes; status: no; scroll: no; help: no; center: yes; dialogWidth: 460px; dialogHeight: 140px; width:460;height:240;menubar:no;directories:no;location:no;';
    commonShowModalDialog(href, features, SelectUserImageCallback, null);
    
    } Код>

  • На странице ProfilePic.aspx один раз нажмите кнопку "ОК". Я загружаю его рис с некоторой логикой, тогда я закрываю окно с помощью javascript

protected void btnOK_Click (отправитель объекта, EventArgs e) {

    try
    {
       // My logic Here

       Debug.WriteLine("Shared Pictures Save Ends: " + DateTime.Now);
       Response.Write ("<script language =javascript>close();</script>");
       Response.End();
    }
    catch (Exception exception)
    {

        LogMessage(exception.Message, EventLogEntryType.Error);
        if (exception.Message.ToLower().Contains("blocked"))
            errorDisplay.Text = "* This type of file has been blocked by the  administrator, please try a different file.";
        else
        {
            errorDisplay.Text = exception.Message;
        }
    }
}

My Question: Я могу закрыть окно, но, что мне нужно, чтобы вызвать функцию обратного вызова `SelectUserImageCallback ' не стрелять. Мне нужно вызвать этот метод после выполнения части кнопки OK.

Теги:
sharepoint

1 ответ

0
Лучший ответ

Вы закрываете окно перед выполнением обратного вызова? Я делал это раньше. В качестве эксперимента попробуйте прокомментировать код, который закрывает окно.

Возможно, вам придется перестроить свой код, чтобы функция обратного вызова закрывала окно, когда оно закончило то, что оно делает.

Обновление: Извините, я неправильно понял вопрос. Было много кода, и я не читал все это. Я думал, что звонок был на странице диалога, но он похож на главную страницу. Я не знаком с commonShowModalDialog(), но похоже, что это может иметь какое-то отношение к SharePoint. У вас есть документация по этому методу? Я нашел это обсуждение, что делает его похожим на специальный способ вернуть значение из диалогового окна. Возможно, ваш обратный вызов не вызывается, потому что вы не закрываете окно правильно. (Это общее предположение с моей стороны.)

Удачи.

  • 0
    Если комментарий код, который закрыл окно. Как мое окно будет автоматически закрываться и вызывать функцию обратного вызова?
  • 0
    Извините, @ James123, я неправильно понял. Я обновил свой ответ с некоторыми предположениями.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню