我有一个querystring.aspx文件,里面有一个gridview。
在querystring.cs文件的默认类
中 public partial class querystring : System.Web.UI.Page
,
我可以访问gridview
控件ID。我在此类下面创建了另一个类,但它没有访问gridview
控件ID。
这是querystring.cs文件中用户定义的类代码: -
public partial class bindingmethod : System.Web.UI.Page
{
public void show()
{
SqlConnection con = new SqlConnection(getconnectionstring());
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
cmd.Connection = con;
con.Open();
SqlDataAdapter adb = new SqlDataAdapter("show_answers", con);
adb.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
//Get a connection string to make a db connection
public static string getconnectionstring()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["crudconnection1"].ConnectionString;
}
}
对于GridView1,它说:
The name GridView1 does not exist in the current context.
请帮帮我。 谢谢。
答案 0 :(得分:0)
这没有任何意义,bindingmethod
不是System.Web.UI.Page
因此我不知道你为什么继承它。此外,Grid
/ GridView
是querystring
页面的一部分,因此您只能从该页面访问它们。
我认为您要做的是将show
/ getconnectionstring
方法移到querystring
课程中,完全摆脱bindingmethod
。
答案 1 :(得分:0)
您的aspx页面顶部在页面属性中有一个属性Inherits="querystring"
。这是将您的aspx页面链接到类querystring
后面的代码。由于您创建了一个新类bindingmethod
,因此它与aspx
页面无关。您无法从多个类继承aspx页面,aspx
页面中的对象(如GridView1
)对您的新类不会以任何方式显示。
我不确定你为什么要创建一个新类。您似乎只需要在querystring
类中使用其他方法,并且需要在Page_Load
事件中调用该方法。
答案 2 :(得分:0)
您只需将对GridView的引用传递给新的类/方法。
来自你的querystring.cs类:
bindingmethod b = new bindingmethod();
b.show(this.GridView1);
BindingMethod.cs
public class bindingmethod
{
public void show(GridView gridView)
{
using(SqlConnection con = new SqlConnection(getconnectionstring()))
using(SqlCommand cmd = new SqlCommand())
{
using(DataTable dt = new DataTable())
{
cmd.Connection = con;
con.Open();
using(SqlDataAdapter adb = new SqlDataAdapter("show_answers", con))
{
adb.Fill(dt);
gridView.DataSource = dt;
gridView.DataBind();
}
}
}
}
//Get a connection string to make a db connection
public static string getconnectionstring()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["crudconnection1"].ConnectionString;
}
}