当我点击一个按钮时,它会获得该按钮的值(Id)并将其传递给页面后面的代码
---- Ajax Code ------
.ajax({
type: "POST",
url: "CS.aspx/Edit",
data: "{'dt1':'" + dt1 +"'}",
contentType: "application/json; charset=utf-8",
dataType:"json",
success: function(result)
{
alert(result.d);
}
});
编辑是我在页面后面的代码中使用的方法
----页面代码背后的代码------
public static string Edit(string dt1)
{
string pcId = dt1;
NpgsqlConnection conn = new NpgsqlConnection("Server=192.168.0.133;User Id=123; " + "Password=123;Database=checDB;");
try
{
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("select Center_Id,center_Name from tbl_Profit_Centers where Center_Id = " + pcId, conn);
NpgsqlDataReader dr = command.ExecuteReader();
txtEditValue.Text = dr["center_Name"].ToString();
conn.Close();
return "Select Success";
}
catch (Exception ex)
{
return "failure";
}
}
此错误在运行项目时显示我
CS0120:非静态字段需要对象引用, 方法或属性'_Default.txtEditValue'
让我一步一步地回答这个
的新内容答案 0 :(得分:1)
您无法访问static
方法中的表单元素,因为您的form
是class
,此表单上的元素与此表单的children
类似,因此您无法直接访问{ {1}}内部静态方法。你要做的是form elements
来自return value
的{{1}}你要在文本框中设置并在WebMethod
中设置值。
关闭连接后,您正在从datareader读取值。 Datareader需要一个开放式连接来读取数据,您应该在从datareader读取数据后关闭连接。此外,您必须调用datareader的
success of ajax
方法才能获取数据。
Read()
}
[WebMethod]
public static string Edit(string dt1)
{
string pcId = dt1;
string strToReturn="";
NpgsqlConnection conn = new NpgsqlConnection("Server=192.168.0.133;User Id=123; " + "Password=123;Database=checDB;");
try
{
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("select Center_Id,center_Name from tbl_Profit_Centers where Center_Id = " + pcId, conn);
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
strToReturn= dr["center_Name"].ToString();
}
conn.Close();
}
catch (Exception ex)
{
strToReturn= "failure";
}
return strToReturn;