2012-11-08 10 views
0

내 페이지의 formview 컨트롤 내에 버튼이 있습니다.버튼 이벤트 추가 이벤트 클릭

버튼이 formview에 포함되어 있기 때문에 코드 숨김에서 볼 수 없습니다.

그래서 나는이 한 :

Dim btnSave As Button = CType(fvCourse.FindControl("btnSave"), Button) 

을 그리고 나는이 같은 이벤트 핸들러 추가 :

이 문제가
AddHandler btnSave.Click, AddressOf btnSave_Click 

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Response.write("hey!") 
End Sub 

, 내가 "을 참조하지 않기 때문에이 작업을 생각하지 않습니다를 헤이! " 내 페이지에.

내가 누락 된 항목이 있습니까?

감사

+1

Msgbox 또는 response.redirect()를 사용하여 테스트 하시겠습니까? 이렇게하면 100 % 확신 할 수 있습니다. –

+1

어디에서 이벤트 처리기를 추가하고 있습니까? –

+0

이 모든 것을 페이지에서 수행 중입니다. - thanks – SkyeBoniwell

답변

2

을,하지만 난 당신이 있기 때문에 그것을 간단한 방법을 할 수있는 생각한다 당신은 VB를 사용하고 있습니다.

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
CommandArgument="1" CommandName="yes" /> 

이 될 수있는 모든 것을 - 일반적으로 사용자가 클릭하는 버튼을 결정하는 명령 이름을 사용하고 명령 인수가 레코드 ID를 보여주기 위해 : 당신의 버튼을 명령 이름과 첫 번째 명령 인수를 지정합니다.

Protected Sub FormView1_ItemCommand(sender As Object, e As System.Web.UI.WebControls.FormViewCommandEventArgs) Handles FormView1.ItemCommand 

    Select Case e.CommandName.ToLower 
     Case "yes" 

      'test 
      Label2.Text = "You chose " & e.CommandArgument.ToString 

    End Select 
End Sub Protected Sub FormView1_ItemCommand(sender As Object, e As System.Web.UI.WebControls.FormViewCommandEventArgs) Handles FormView1.ItemCommand 

    Select Case e.CommandName.ToLower 
     Case "yes" 

      'test 
      Label2.Text = "You chose " & e.CommandArgument.ToString 

    End Select 
End Sub 

그리고 VB에서

, 즉 당신이해야 할 모든입니다 : 당신에

코드 숨김, (무언가가 그 안에 발생했을 때 화재)에 FormView의 이벤트를 ItemCommand 에 매크로를 첨부!

+0

저장할 수있는 장소 만 +1하고 감사합니다. – Pakk

1

당신은 그런 것들에 대한 FormViewItemCreated 이벤트를 사용해야합니다. ButtonItemTemplate에 있다면 당신은 EditItemTemplate 당신은 Edit 사용할 필요는 FormViewMode.ReadOnly를 확인해야합니다 내가 모르는 뭔가가 모르는

Private Sub fvCourse_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles fvCourse.ItemCreated 
    Select Case fvCourse.CurrentMode 
     Case FormViewMode.Edit 
      Dim btnSave As Button = DirectCast(fvCourse.FindControl("btnSave"), Button) 
      AddHandler btnSave.Click, AddressOf btnSave_Click 
    End Select 
End Sub 
+0

버튼이 ItemTemplate에 있습니다. _ItemCreated 이벤트에 있어야하는 이유는 무엇입니까? 감사합니다 – SkyeBoniwell

+1

@ 999cm999 : 모든 포스트 백에 이벤트 핸들러를 추가해야하며이 이벤트는 모든 포스트 백마다 트리거됩니다. 또한 올바른 FormViewMode에서만 호출되고 'NullReferenceException'을 얻지 못하게합니다. –

+0

모든 컨트롤을 _ItemCreated에 넣어야합니까? 내 모든 ASP와 마찬가지로 : 레이블, 버튼, 텍스트 상자 등? 감사합니다. – SkyeBoniwell