0

内部にグリッドビューを含む querystring.aspx ファイルがあります。

querystring.cs ファイルのデフォルト クラスで、

public partial class querystring : System.Web.UI.Page

コントロール ID にアクセスできますgridview。このクラスの下に別のクラスを作成しましたが、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.    

私を助けてください。ありがとうございました。

4

3 に答える 3

0

一番上のaspxページにInherits="querystring"は、ページ属性に属性があります。これは、aspxページをクラスの背後にあるコードにリンクしていますquerystring。新しいクラスを作成したのでbindingmethod、それはページとはまったく関係ありませんaspx。複数のクラスからaspxページを継承することはできません。また、aspxページ内のオブジェクトはGridView1、新しいクラスには表示されません。

なぜ新しいクラスを作成するのかわかりません。クラスに別のメソッドが必要なだけで、querystringおそらくPage_Loadイベントでそのメソッドを呼び出す必要があるようです。

于 2012-09-11T10:48:35.007 に答える
0

これは意味bindingmethodがありません。System.Web.UI.Pageしたがって、なぜあなたがそれを継承しているのかわかりません。また、Grid/GridViewはページの一部であるquerystringため、そのページからのみアクセスできます。

あなたがしたいことは、show/getconnectionstringメソッドをクラスに移動して、完全querystringに取り除くことだと思います。bindingmethod

于 2012-09-11T10:43:04.083 に答える
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; 
    } 
} 
于 2012-09-11T11:00:05.997 に答える