2014-12-02 6 views
-3

Я хочу отображать значения из db в сетку с файлом изображения. При использовании приведенного ниже кода он показывает ошибку. Помогите найти правильное решение.Нет перегрузки для 'Button1_Click' соответствует делегату 'System.EventHandler'?

Код:

protected void Button1_Click(object sender, GridViewRowEventArgs e1) 
    { 
     ShadingAnalysisDataSetTableAdapters.tbl_SiteLayOutUploadTableAdapter sl; 
     sl = new ShadingAnalysisDataSetTableAdapters.tbl_SiteLayOutUploadTableAdapter(); 
     DataTable dt = new DataTable(); 
     dt = sl.GetGridData(ddlSit.SelectedValue, int.Parse(ddlVersion.SelectedValue)); 
     try 
     { 
      if (e1.Row.RowType == DataControlRowType.DataRow && gvEdit.EditIndex == e1.Row.RowIndex) 
      { 
       Image Image1 = (Image)e1.Row.FindControl("Image1"); 
       foreach (DataRow row in dt.Rows) 
       { 
        byte[] img1 = (byte[])row["ImgData"]; 
        string base1 = Convert.ToBase64String(img1); 
        Image1.ImageUrl = "data:image/jpg;base64," + base1; 
       } 
      } 
      gvEdit.DataSource = dt; 
      gvEdit.DataBind(); 
     } 
     catch (NullReferenceException ex) 
     { 

     } 
    } 

ASPX:

<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" /> 
+1

Является ли кнопка внутри сетки? – ekad

+0

'Button_Click (Object sender, EventArgs e)' - Это прототип по умолчанию для обработчика кликов для кнопки (из MSDN). То, что вы указали для обработчика событий нажатия кнопок, - 'GridViewRowEventArgs'. Если вы просто используете «EventArgs»? –

+1

Никогда не игнорируйте исключения, за исключением очень редких случаев. И не _ever_ игнорировать 'NullReferenceException'. –

ответ

2

Вы должны изменить прототип функции, как показано ниже:

protected void Button1_Click(object sender, EventArgs e1) 
{ 
} 
+1

Это был мой комментарий точно @Rahul –

+0

@KarthikNishanth Я набрал свой ответ в то же самое время –

+1

Это не решит проблему, в этом методе есть 'if (e1.Row.RowType == DataControlRowType.DataRow'), и это создаст другая ошибка. – ekad

1

Параметры вашего Button1_Click неправильно. Он должен выглядеть следующим образом.

protected void Button1_Click(object sender, EventArgs e) 
{ 

} 
+1

Это не решит проблему, код будет разбит на 'if (e1.Row.RowType == DataControlRowType.DataRow', потому что вы также меняете' e1' на 'e'. – ekad