2013-04-12 1 views
1

다음 코드가 내 webform의 버튼 클릭 이벤트에 정의되어 있습니다. 코드를 처음 클릭하면 제대로 실행됩니다. 추가 클릭 수는 데이터베이스에 더 많은 값을 추가해야하지만이 경우 첫 번째 다시 게시 이후에는 클릭 이벤트가 발생하지 않습니다.버튼 클릭 이벤트가 포스트 백 이후에 실행되지 않음

페이지를 닫고 다시 돌아올 때 목록에 이름을 하나 더 추가 할 수 있지만 이후의 클릭은 여전히 ​​작동하지 않습니다. 나는 문제의 버튼을 동적으로 생성하는 경우

if (!String.IsNullOrEmpty(tbSuggestedSupplier_Add.Text)) 
{ 
    SqlCommand cmd = new SqlCommand("pSuggestedSupplier_AddNew", dbConnection); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Clear(); 
    cmd.Parameters.Add("@NewSupplierRequestID", SqlDbType.Int); 
    cmd.Parameters.Add("@SupplierName", SqlDbType.VarChar, (500)); 
    //cmd.Parameters.Add("@SupplierTypeID"); 

    cmd.Parameters["@NewSupplierRequestID"].Value = Session["NewSupplierRequestID"]; 
    cmd.Parameters["@SupplierName"].Value = tbSuggestedSupplier_Add.Text; 
    functions.NewSupplierRequest.Open(); 

    try 
    { 
     cmd.ExecuteNonQuery(); 
     gvSuggestedSuppliers.DataBind(); 
     tbSuggestedSupplier_Add.Text = string.Empty; 
    } 

    catch (Exception err) 
    { 
     this.lblError.Text = err.Message; 
    } 

    finally 
    { 
     functions.NewSupplierRequest.Close(); 
    } 
} 
+0

귀하의 프로그램이 "protected void Your_Handler (object sender, EventArgs e)"부분을 입력했는지 여부를 확인하기 위해 디버깅을 했습니까? –

+2

버튼과 주변 HTML 요소를 표시 할 수 있습니까? –

답변

3

이 특정 버튼에 CausesValidation = "False"를 추가하여 문제를 해결했습니다.

4

(내가 생각 제일 먼저하는) 페이지에 자바 스크립트 오류를 ​​던지고하지 ...이 하나에 난처한 해요, 당신이 있는지 확인 각 다시 게시에서 Click 이벤트 처리기를 다시 첨부합니다. 그게 문제가 될 수있는 것처럼 들리네.

가장 좋은 방법은 페이지의 PreInit event 내에 Button 컨트롤을 만들고 거기에 이벤트 처리기를 첨부하는 것입니다. 그런 식으로 ViewState에 포함되며 나중에 페이지 수명주기의 이벤트에서 알게됩니다.

Page_PreInit(Object sender, EventArgs e) 
{ 
    Button yourBtn = new Button(); 
    // Set your other properties 
    yourBtn.Click += yourEventHandlerName; 
    // Add the control to the controls collection of whatever container it belongs in 
    yourContainer.Controls.Add(yourBtn); 
} 
관련 문제