non capisco c'è un'errore ma non saprei cosa fare:

public void ItemDataBind (object sender, DataGridItemEventArgs e )
{
if ((e.Item.ItemType==ListItemType.AlternatingItem) || (e.Item.ItemType==ListItemType.Item))
{
if (! (e.Item.FindControl("Dropdownlist")==null))
{
DropDownList ddl=((DropDownList)e.Item.FindControl("Dropdownlis t"));
compila_ddlFunz(ddl);
}
}
}

void compila_ddlFunz(DropDownList ddl)
{
int actId=Convert.ToInt32(Session["actId"]);
string query_ddl="Select * from Ana, Qpa where Qpa.QpaAnaId=Ana.AnaOwnId and QpaActId="+ actId;
SqlCommand cmd = new SqlCommand(query_ddl,conn);

conn.Open();
ddl.DataSource = cmd.ExecuteReader();
ddl.DataValueField = "AnaOwnId";
ddl.DataTextField = "AnaLnm";
ddl.DataBind();
conn.Close();
}
l'errore è il seguente:
"Il metodo 'Sisco_Test.Qpa.ItemDataBind(object, System.Web.UI.WebControls.DataGridItemEventArgs)' non corrisponde al delegato 'void System.EventHandler(object, System.EventArgs)'."

credo che l'errore sia dato nella parte che ho messo in grassetto solo che non saprei con cosa sostituirla

Il databind l'ho messo nel datagrid come mi hai detto
<asp:datagrid OnDataBinding="ItemDataBind" .....