如何从asp.net调用服务器端非静态c#函数

如何从asp.net调用服务器端非静态c#函数,c#,asp.net,ajax,function,server-side,C#,Asp.net,Ajax,Function,Server Side,我需要调用服务器端函数(C#)向表中添加行。如果我使用一个普通按钮来实现这一点,我会自动调用回发,这样我会丢失添加到网页中的大部分动态数据。我做了一些研究,我认为实现我的目标的最简单的方法是在不调用回发(或者至少丢失动态数据)的情况下向我的网页添加动态数据,就是从ajax调用服务器端函数。但是,该函数需要是静态的,这是不可能的 这是我的职责: public void onButtonPress(object sender, EventArgs e) { ContentPl

我需要调用服务器端函数(C#)向表中添加行。如果我使用一个普通按钮来实现这一点,我会自动调用回发,这样我会丢失添加到网页中的大部分动态数据。我做了一些研究,我认为实现我的目标的最简单的方法是在不调用回发(或者至少丢失动态数据)的情况下向我的网页添加动态数据,就是从ajax调用服务器端函数。但是,该函数需要是静态的,这是不可能的

这是我的职责:

public void onButtonPress(object sender, EventArgs e)
    {
        ContentPlaceHolder Content;
        Content = (ContentPlaceHolder)Master.FindControl("MainContent");

        switch(((Button)sender).ID)
        {
            case "FiscaleAddButton":
                // 1:Naam - 2:Adres - 3:Postcode - 4:Contact - 5:Telefoon - 6:Telefoon - 7:Mail - 8:KvK - 9:BTW - 10:Website
                TableRow row = new TableRow();
                for (int i = 1; i <= 10; i++)
                {
                    TableCell cell = new TableCell();
                    cell.Text = ((TextBox)Content.FindControl("FiscaleUnitTextBox" + i.ToString())).Text;
                    row.Cells.Add(cell);
                }
                FiscaleEenhedenTable.Rows.Add(row);
                break;
        }
    }
如果你还有问题,就在评论中问他们。提前谢谢

编辑:

[WebMethod]
    public static void onButtonPress(object sender, EventArgs e)
    {
        KlantToevoegen page = getInstance();
        ContentPlaceHolder Content;
        Content = (ContentPlaceHolder)page.Master.FindControl("MainContent");

        switch(((Button)sender).ID)
        {
            case "FiscaleAddButton":
                // 1:Naam - 2:Adres - 3:Postcode - 4:Contact - 5:Telefoon - 6:Telefoon - 7:Mail - 8:KvK - 9:BTW - 10:Website
                TableRow row = new TableRow();
                for (int i = 1; i <= 10; i++)
                {
                    TableCell cell = new TableCell();
                    cell.Text = ((TextBox)Content.FindControl("FiscaleUnitTextBox" + i.ToString())).Text;
                    row.Cells.Add(cell);
                }
                page.FiscaleEenhedenTable.Rows.Add(row);
                break;
        }
    }
[WebMethod]
公共静态void onButtonPress(对象发送方,事件参数e)
{
KlantToevoegen page=getInstance();
内容占位符内容;
Content=(ContentPlaceHolder)page.Master.FindControl(“MainContent”);
开关(((按钮)发送器).ID)
{
案例“FiscaleAddButton”:
//1:Naam-2:Adres-3:Postcode-4:Contact-5:Telefoon-6:Telefoon-7:Mail-8:KvK-9:BTW-10:Website
TableRow行=新TableRow();

对于(inti=1;我可以发布使用
[WebMethod]的代码)
@Kyojimaru这是同一个函数,我删除它只是因为它对我不起作用。我还创建了一个页面的静态实例,以便在静态函数中调用我的控件。但我将添加代码,以便您可以see@shariqueansari这有什么用?这对我有什么帮助。你的评论对提供信息没有帮助,是吗您的代码?我看到这个代码没有从DB或其他逻辑代码中读取任何东西,这是强制在服务器上运行的。如果您只想在表中添加新行,可以考虑使用JavaScript或jQuery而不需要服务器调用。如果没有,那么忽略我的注释。@ LifeofMadness,我认为您需要使用<代码> Ajax调用<代码>服务器到G。设置要添加到表中的值(来自
FiscaleUnitTextBox
Text
),然后在调用
AJAX success
时,使用
JavaScript
将返回值添加到表中
function callButtonMethod() {     
       $.ajax({
           type: "POST",
           url: 'KlantToevoegen.aspx/onButtonPress',
           data: "",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (msg) {
               $("#ContentWrapper").html("success");
           },
           error: function (e) {
               $("#ContentWrapper").html("Something Wrong.");
           }
       });
   }
[WebMethod]
    public static void onButtonPress(object sender, EventArgs e)
    {
        KlantToevoegen page = getInstance();
        ContentPlaceHolder Content;
        Content = (ContentPlaceHolder)page.Master.FindControl("MainContent");

        switch(((Button)sender).ID)
        {
            case "FiscaleAddButton":
                // 1:Naam - 2:Adres - 3:Postcode - 4:Contact - 5:Telefoon - 6:Telefoon - 7:Mail - 8:KvK - 9:BTW - 10:Website
                TableRow row = new TableRow();
                for (int i = 1; i <= 10; i++)
                {
                    TableCell cell = new TableCell();
                    cell.Text = ((TextBox)Content.FindControl("FiscaleUnitTextBox" + i.ToString())).Text;
                    row.Cells.Add(cell);
                }
                page.FiscaleEenhedenTable.Rows.Add(row);
                break;
        }
    }