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