ASP.Net向导控制 - 导航离开步骤之前的客户端逻辑

时间:2014-09-02 14:14:57

标签: asp.net javascript-events client-side wizard

我正在将信用卡令牌化改造为遗留应用程序。有一个5步注册向导,它在步骤4中获取信用卡数据。我需要调用支付网关的客户端API,并希望在发生任何回发之前,即在下一个回复之前对卡数据进行标记化/上一个按钮回发。所以我将自己的点击处理程序添加到两个按钮(仅显示上一个按钮的代码):

$('#<% = wiz.FindControl("StepNavigationTemplateContainerID").
            FindControl("btnPrevious").ClientID%>')
                 .on('click.PayPageClick', clickEventPayPage);

我的clickEventPayPage()事件处理程序被正确调用并执行其操作,即标记化请求成功返回,并且表单中的卡号被替换为令牌。

var clickEventPayPage = function () {
    if ([tokenization has not occurred yet]) {
        clickSource = this;

        requestToken([...], submitWhenDone);
        return true;
    }
    else
        return true;
    }
}

我尝试了从事件处理程序返回true和false的不同组合,希望在我的事件之后调用ASP.NET事件处理程序,但这似乎不会发生。

然后API调用我的submitWhenDone函数

function submitWhenDone(response) {
    // do various cleanup and then post back to server
    __doPostBack(clickSource.id,'postPayPage');
}

问题是__doPostBack()会进行回发,但它不会将向导推进到下一步或上一步。这样做的正确方法是什么?我只是想避免重写向导。

1 个答案:

答案 0 :(得分:0)

好的,this helped

function submitWhenDone(response) {
    // do various cleanup and then post back to server
    clickSource.click();
}

并且我的事件处理程序必须返回false以防止双重发布。