-1

私は次のようにボタンonclickイベントで関数を持っています:

 protected void show()
    {
        try
        {

            SqlConnection con = new SqlConnection(getconnectionstring());
            con.Open();
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "paging_select";
            cmd.Connection = con;

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@startrowindex", current_page_number);
            cmd.Parameters.AddWithValue("@maximumrows", page_size);
            cmd.Parameters.Add("@totalrows", SqlDbType.Int, 4);
            cmd.Parameters["@totalrows"].Direction =
                          ParameterDirection.Output;
            SqlDataAdapter sda = new SqlDataAdapter(cmd);



            sda.Fill(dt);
            int totalRows = (int)cmd.Parameters["@totalrows"].Value;
            sda.Dispose();
            gridview.DataSource = dt;
            gridview.DataBind();
            con.Close();
           // Response.Write("Total rows=" + totalRows + "<br/>");


            //Response.Write("total pages will be" + totalpages_counter(totalRows).ToString() + "having 3 records per page" + "<br/>");
            label2.Text = current_page_number.ToString();
          //  label2.Visible = false;
            label3.Text = totalpages_counter(totalRows).ToString();
           // label3.Visible = false;
          //  Response.Write("Page" + " " + label2.Text + " " + "of" + " " + label3.Text);

        }
        catch (Exception ee)
        {
            Response.Write(ee.Message);
        }

    }

実行するとエラーになります。

エラー 1 'show' のオーバーロードがデリゲート 'System.EventHandler' と一致しません

関数に引数がないためだと思いますが、私の問題は、引数を持たない可能性のある関数、つまり 保護された returntype functionname() でこのコードを実行したいということです。この関数を別の場所から呼び出す必要があるため、このようにする必要があります。または、次のタイプの関数を呼び出す方法を教えてください。

protected void show(Object sender,EventArgs e)
4

2 に答える 2

1

正しい署名でクリック ハンドラーからメソッドを呼び出すだけです。

private void Button1_Click(object sender, EventArgs e)
{
    show();
}
于 2012-08-01T12:19:34.673 に答える
0

動的に作成されたコントロール (またはデザイナーの代わりにコードを介してバインドされたイベントのみ) の代替手段を提供するために、もう 1 つの回答を追加します。

myButton.Click += new EventHandler((sender, e) => show());

これにより、メソッドを呼び出すだけの単純なイベント ハンドラーがセットアップされますshow()

于 2012-08-01T12:55:33.653 に答える