基于click事件调用方法后面的代码

时间:2010-03-05 22:54:22

标签: c# asp.net javascript

我目前有这个工作,但它要求我有一个静态方法作为后面的代码中调用的方法。我希望能够访问一些不能是静态的成员变量。我没有与Javascript实现结合,并且对其他可以帮助我实现此目的的建议持开放态度。

如果有其他信息有用,请告诉我,我可以加入。

编辑:让我澄清一点,我正在寻找根据按钮点击在页面上的一个用户控件中编辑值。我在页面上的列表中持有用户控件,并使用通过javascript传递的参数来查找我想要更新的用户控件并在那里修改值。

目前看起来像这样:

Javascript:

    function incrementCompletes(obj) 
    {
        var firstParameter = $(obj).parents('.parentClass1').find('.childClass1').html();
        var secondParameter = $(obj).parents('.parentClass2').find('.childClass2').html();

        var parameters = "{'firstParam':'" + firstParameter+ "','secondParam':'" + secondParameter+ "'}";
         $.ajax({
            type: "POST",
            url: "Page.aspx/StaticMethod",
            contentType: "application/json; charset=utf-8",
            data: parameters,
            dataType: "json",
            success: 
            function DoOtherStuffHere(result) {
                var x = $(obj).parents('.classWithStuffToChange');
                var y = $(x).find('.otherClassWithStuffToChange');
                y[0].innerHTML=" + " + result.d;
            }
        });
    }

代码背后:

    [WebMethod]
    public static int StaticMethod(string parameter1, string parameter2)
    {
        //Do some stuff
        //Return a value
    }  

我想找到一个不需要调用静态方法的解决方案。

1 个答案:

答案 0 :(得分:1)

如果要访问页面的成员变量,则必须有页面类的实例。这意味着您必须进行回发而不是调用Web方法。

使用常规Button控件,这将导致回发,您可以使用它的Click事件在后面的代码中运行方法。如果您不希望重新加载页面,可以使用ASP.NET AJAX使用AJAX进行回调。