【问题标题】:consuming c# events in web forms NO ASP CONTROLS在 Web 表单中使用 c# 事件没有 ASP 控件
【发布时间】:2011-09-22 08:54:51
【问题描述】:

如果我的 html 语法如下,我将如何引发事件:

<select runat="server" id="selection" onclick="inputCheck"  />

我在后面的代码中试过这个:

protected void inputCheck(object sender, EventArgs e)
        {
            //没关系,因为它引发了点击。
        }

异常:Microsoft JScript 运行时错误:'inputCheck' 未定义

【问题讨论】:

    标签: c# webforms


    【解决方案1】:

    这是一个使用 ajax 方法将 jQuery 回传到服务器的示例,非常干净且易于使用。如果您有任何问题,请告诉我。

    --HTML页面

    <select id="selection" name="selection" />
    

    --将下面这段代码放在被script标签包围的html的head标签中;您还必须包含最新的 jquery 代码(从http://www.jquery.com 免费下载)

    $(document).ready(function()
    {
        $("#selection").click(function()
        {
            var selectionValue = $(this).val();
            $.ajax({
                type: "POST",
                url: "CodeBehindPage.aspx/WebMethodName",
                data: "{'input':'" + selectionValue + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    //return value goes here if any
                }
            });
        }
    });
    

    //页面后面的代码

    [System.Web.Services.WebMethod]
    public static bool WebMethodName(string input)
    {
        try
        {
            //do something here with the input
    
            return (true);
        }
        catch(Exception ex)
        {
            throw ex;
        }
    
    }
    

    --这将在没有任何回发的情况下将代码发布到服务器,这是我喜欢的。为了测试,在 WebMethodName 函数内部设置一个断点并查看传入的输入。HTH

    【讨论】:

      【解决方案2】:

      您的第一个 sn-p 中的 onclick 仅在 javascript 中运行。要在服务器端引发事件,第一步是为此事件构建一个 javascript 方法。从那里,您有几个选择:

      • 你可以构建一个ajax请求来调用WebMethod
      • 您可以将活动发布回原始页面。由于您没有使用 asp 控件,因此您必须在 page_load 中有代码来检查事件的发布数据并自行引发。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 2011-02-23
        相关资源
        最近更新 更多