.net - 如何使用 jQuery 触发服务器端方法

标签 .net asp.net jquery performance plugins

我有一个大型应用程序,我要为其启用快捷键。我找到了 2 个 JQuery 插件( demo plug-in 1 - Demo plug-in 2 )来为我做这件事。你可以找到它们 in this post in StackOverFlow

我的应用程序已经完成,我将向其添加一些功能,因此我不想再次编写代码。

因此,由于快捷键只是捕获组合键,我想知道如何调用快捷键应触发的服务器方法?

那么如何通过调用我之前编写的方法来使用这两个插件呢? 实际上如何使用 Jquery 触发服务器方法?

还可以找到好文章here, by Dave Ward

<小时/>

更新:这是场景。当用户按 CTRL+Del GridView1_OnDeleteCommand 时,我有这个

protected void grdDocumentRows_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
    try
    {
        DeleteRow(grdDocumentRows.DataKeys[e.Item.ItemIndex].ToString());
        clearControls();
        cmdSaveTrans.Text = Hajloo.Portal.Common.Constants.Accounting.Documents.InsertClickText;
        btnDelete.Visible = false;
        grdDocumentRows.EditItemIndex = -1;
        BindGrid();
    }
    catch (Exception ex)
    {
        Page.AddMessage(GetLocalResourceObject("AProblemAccuredTryAgain").ToString(), MessageControl.TypeEnum.Error);
    }
}

private void BindGrid()
{
    RefreshPage();
    grdDocumentRows.DataSource = ((DataSet)Session[Hajloo.Portal.Common.Constants.Accounting.Session.AccDocument]).Tables[AccDocument.TRANSACTIONS_TABLE];
    grdDocumentRows.DataBind();
}

private void RefreshPage()
{
    Creditors = (decimal)((AccDocument)Session[Hajloo.Portal.Common.Constants.Accounting.Session.AccDocument]).Tables[AccDocument.ACCDOCUMENT_TABLE].Rows[0][AccDocument.ACCDOCUMENT_CREDITORS_SUM_FIELD];
    Debtors = (decimal)((AccDocument)Session[Hajloo.Portal.Common.Constants.Accounting.Session.AccDocument]).Tables[AccDocument.ACCDOCUMENT_TABLE].Rows[0][AccDocument.ACCDOCUMENT_DEBTORS_SUM_FIELD];
    if ((Creditors - Debtors) != 0)
        labBalance.InnerText = GetLocalResourceObject("Differentiate").ToString() + "‏" + (Creditors - Debtors).ToString(Hajloo.Portal.Common.Constants.Common.Documents.CF) + "‏";
    else
        labBalance.InnerText = GetLocalResourceObject("Balance").ToString();

    lblSumDebit.Text = Debtors.ToString(Hajloo.Portal.Common.Constants.Common.Documents.CF);
    lblSumCredit.Text = Creditors.ToString(Hajloo.Portal.Common.Constants.Common.Documents.CF);

    if (grdDocumentRows.EditItemIndex == -1)
        clearControls();
}

其他场景相同。如何为此类代码启用快捷方式(使用 session 、NHibernate 等)

最佳答案

这直接来自您提供的链接。

在您的 ASP.NET pg PageName.aspx 中,您有一个用 [WebMethod] 修饰的 MethodName。要从快捷方式调用 MethodName,请在 javascript 中执行类似以下操作:

$(document).bind('keydown', 'Ctrl+c', zzz);  // hotkeys plugin

function zzz() {

    $.ajax({
        type: "POST",
        url: "PageName.aspx/MethodName",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            // Update your pg accordingly
        }
    });
}

更新:

[WebMethod]
public static void MethodName(int rownum)
{
    DeleteRow(rownum.ToString());
    clearControls();
    cmdSaveTrans.Text = Hajloo.Portal.Common.Constants.Accounting.Documents.InsertClickText;
    btnDelete.Visible = false;
    grdDocumentRows.EditItemIndex = -1;
    BindGrid();
}

关于.net - 如何使用 jQuery 触发服务器端方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996293/

相关文章:

javascript - 刷新数据表数据而不重新加载整个页面

c# - 可以强制开发人员处理特定的异常吗?

c# - 匹配进程参数的正则表达式

c# - 基于 x64 调用约定的 CLI 调用

c# - 静态函数并发 ASP.NET

javascript - jQuery 选项卡 - 获取新选择的索引

c# - 调试时变量在当前上下文中不存在

asp.net - 如何使用 ASP.Net 创建 'magic quadrant' 样式图表?

asp.net - 如何对等待另一个异步任务的 AsyncTask 进行单元测试?

jquery - 如何在横幅前设置图片?