函数调用中的问题?

时间:2012-08-01 12:12:56

标签: c# function arguments

我在按钮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'

我希望它因为函数没有参数。但我的问题是我想在一个可能没有任何参数的函数中执行这个代码,即 protected returntype funtionname()。它应该是像这样因为我必须从其他地方调用这个函数。 或者更好,你可以告诉我如何调用以下类型的函数:

protected void show(Object sender,EventArgs e)

2 个答案:

答案 0 :(得分:1)

只需使用正确签名的点击处理程序调用您的方法:

private void Button1_Click(object sender, EventArgs e)
{
    show();
}

答案 1 :(得分:0)

再添加一个答案,为动态创建的控件(或仅通过代码而不是设计器绑定的事件)提供替代方案。

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

这会设置简单的事件处理程序,然后只调用你的show()方法。