Как мы можем вызвать делегата в JavaScript? - PullRequest
0 голосов
/ 15 июля 2011

Я пишу javascript

function ValueChanges() 

  {

    Parent = document.getElementById('<%= grvMultiChoiceAnswerList.ClientID %>');
    var items = Parent.getElementsByTagName('textarea');
    var chkboxControl = Parent.getElementsByTagName('checkbox');

    for (i = 0; i < items.length; i++) {
        var hdnTextControl, hdnExplanation;
        hdnTextControl = (items[i].id).replace("txtText", "hdnText");
        hdnExplanation = (items[i].id).replace("txtExplanation", "hdnExplanation");

        if (items[i].id.split("_")[5] == "txtText") {
            if (items[i].value != document.getElementById(hdnTextControl).value) {
                var ssave = window.confirm('Your changes are not saved. Do you want to save your changes before you exit.')
                if (ssave == true) {
                    document.getElementById('<%=btnUpdate.ClientID%>').click(); // I WANT TO REPLACE THIS LIKE SO MY DELEGATE GETS FIRE
                    return false;
                }
                else
                    return true;
            }
        }
    }

У меня есть делегат

  grvMultiChoiceAnswerList.RowUpdating += delegate(object obj, GridViewUpdateEventArgs args)

{
            SaveFields();
            if (ReloadContent != null)
                ReloadContent(null, EventArgs.Empty);

        };

Теперь я хочу вызвать этого делегата в моем скрипте java и хочу заменить document.getElementById ('. <% = btnUpdate.ClientID%> ') нажмите ();строка, чтобы мой делегат получил огонь, когда условие if (ssave == ture) истинно

1 Ответ

1 голос
/ 15 июля 2011

Чтобы получить доступ к «методам» на сервере из javascript, вам нужно сделать обратную передачу с вашим javascript, например:

__doPostBack('MyBtn','');

Что касается сервера, он будет действовать так же, как и

document.getElementById('<%=btnUpdate.ClientID%>').click(); 

, но для клиента он пропускает любой javascript, связанный с нажатием на кнопку.

Чтобы получить доступ к стороне сервера, вам нужно смоделировать запуск события из вашего javascript, чтобы страница asp.net могла его распознать и привязать к нему. Добавьте столбец обновления вида сетки и посмотрите на сгенерированный javascript, он даст вам ключ к пониманию того, что вызывать внутри обратной связи. После этого вам может понадобиться сохранить столбец, но вы сможете скрыть его, используя css.

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