CS0120:非静态字段,方法或属性'_Default.txtEditValue'需要对象引用

时间:2015-06-01 11:02:58

标签: c# asp.net asp.net-ajax

当我点击一个按钮时,它会获得该按钮的值(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'

让我一步一步地回答这个

的新内容

1 个答案:

答案 0 :(得分:1)

您无法访问static方法中的表单元素,因为您的formclass,此表单上的元素与此表单的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;