2
문제는 설명하기가 약간 복잡하므로 부담을주십시오. 두 개의 버튼 컨트롤이 있습니다. 페이지로드시, 어떤 버튼이 페이지로드시 포스트 백을 작성했는지 알고 싶었습니다. 연구를 통해 아래에서이 스 니펫을 발견했으며 예상대로 작동합니다. 여기 버튼을 클릭 할 때 발생하는 이벤트 시나리오가 있습니다.버튼 컨트롤이 작동하지 않습니다
1. Click the button does a postback
2. Runs the function below and tell me the id of the button
3. Runs the clicked event handlers for that button
Protected Sub btnCalc_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCalc.Click
' Do this
End Sub
문제는 내가 두 번째 버튼을 클릭하면,이 테스트를 통해 3.합니까 결코 1 단계와 2 단계를하지 않습니다 만 제공됩니다, 나는 그것이 첫 번째 버튼을 1, 2, 3을 클릭 않는다는 것을 가지고있다. 왜 이런 일이 일어나고 있는지 전혀 모른다.
Function GetPostBackControlName() As String
Dim control As Control = Nothing
Dim ctrlname As String = Page.Request.Params("__EVENTTARGET")
If ctrlname <> Nothing AndAlso ctrlname <> [String].Empty Then
control = Page.FindControl(ctrlname)
Else
Dim ctrlStr As String = [String].Empty
Dim c As Control = Nothing
For Each ctl As String In Page.Request.Form
c = Page.FindControl(ctl)
If TypeOf c Is System.Web.UI.WebControls.Button Then
control = c
Exit For
End If
Next
End If
Try
Return control.ID.ToString
Catch
Return ""
End Try
End Function
버튼을 이벤트 핸들러에 직접 연결하고 'sender' 매개 변수를 사용하여 클릭 한 버튼을 가져 오는 데는 어떤 이유가 있습니까? 그것의 무엇을 위해 결국 거기에 ... 왜 2가 작동하고 올바른 ID를 얻는 것처럼 그 소리가 작동하지 않는 질문에 대한 다음 문제는 3 단계로 당신이 우리에게 보여준 것처럼 보이지 않는 것입니다 에 대한 코드. – Chris
예 b/c 메신저 역동적 인 테이블이 내가 다시 게시 할 때마다 내가 다시 게시하고 싶지 않아. 그것은 내 페이지 속도를 늦춘다. 디버거에서 단계별로 ID를 찾았지만 마지막 클릭 이벤트 처리기가 실행되지 않습니다. – Will
@Will : 페이지의 일부만로드하려는 경우 Visual에 제공되는 Microsoft AJAX UpdatePanel 컨트롤을 고려하십시오. 사진관. 사용중인 Visual Studio의 버전은 무엇입니까? 또한 과거 질문을 검토하고 적절하다고 응답 한 것으로 표시해야합니다. – HardCode