문제

사용자가 메인 페이지에서 헤드라인을 추가하고 제거해야 하는 웹사이트가 있습니다.헤드라인은 헤드라인 표시 여부를 결정하는 '표시'(참 또는 거짓)라는 제목의 열이 있는 데이터베이스에 저장됩니다.사용자가 기본 페이지에서 헤드라인을 추가하거나 제거할 수 있기를 원하므로 '활성화' 및 '비활성화'가 포함된 드롭다운 목록과 함께 모든 헤드라인 테이블을 생성하는 다른 페이지를 만들었습니다.사용자가 드롭다운 목록의 값을 변경할 때 데이터베이스가 업데이트될 때까지 이러한 드롭다운 목록이 작동하도록 하고 싶습니다.드롭다운 목록에 변경 이벤트를 제공하는 방법을 찾을 수 없습니다.

어떤 아이디어가 있나요?내가 이 일을 올바른 방법으로 진행하고 있나요? 아니면 더 좋은 방법이 있나요?

도움이 되었습니까?

해결책

먼저 실제 요청을 수행하려면 드롭 다운을 AutoPostBack으로 설정하고 값을 얻고 데이터를 업데이트하기 위해 핸들러를 추가합니다 (최소한 드롭 다운은 리피터 또는 Datagrid에있을 것입니다).

    Private Sub SetupDropdowns()
        Dim pDropDown As New DropDownList
        pDropDown.Items.Add("Yes")
        pDropDown.Items.Add("No")
        pDropDown.AutoPostBack = True
        AddHandler pDropDown.SelectedIndexChanged, AddressOf pDropDown_SelectedIndexChanged
    End Sub

    Private Sub pDropDown_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim value As String = CType(sender, DropDownList).SelectedValue
'Do something with value
    End Sub

더 쉬운 방법은 SQL에 직접 액세스하는 경우 Datagrid를 사용하여 SQL 쿼리에 데이터를 사용하는 것입니다.

다른 팁

첫 번째;개인적으로 저는 참/거짓 값에 대한 사용자 인터페이스를 제공하기 위해 확인란을 사용합니다.이 문제는 두 가지 방법으로 처리할 수 있습니다.ASP.NET 컨트롤(<asp:CheckBox .../>) 또는 일반 HTML 컨트롤(<input type="checkbox" .../>).

ASP.NET 컨트롤을 사용하는 경우 디자인 뷰에서 컨트롤을 두 번 클릭하면 CheckedChanged 이벤트에 대한 이벤트 처리기가 자동으로 생성됩니다.HTML 입력 요소를 사용하는 경우 JavaScript를 사용하여 클라이언트 측에서 onclick 이벤트를 처리해야 하며 서버가 데이터베이스를 업데이트할 수 있도록 JavaScript가 AJAX 호출 등을 수행하도록 해야 합니다.ASP.NET 접근 방식이 더 간단하다고 말하고 싶습니다.

가장 쉬운 방법은 단순히 DataGrid를 사용하는 것입니다. 그런 다음 이벤트를 쉽게 처리할 수 있습니다.

대안으로 단순히 "표시" 또는 "숨기기" 옵션을 수행하고 있으므로 버튼만 사용하면 더 나은 UI를 제공할 수 있습니다.(일부 브라우저에서 스크롤 휠 마우스를 사용하여 드롭다운 목록 항목을 실수로 스크롤했기 때문에 이것이 사실이라고 생각합니다.)

드롭 다운을 만드는 코드에서 다음을 추가하십시오.

''// You already have this code...

Dim oDropDown as New DropDown

''// Whatever other declarations you need...

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

일반적으로 Toolbox에서 프로젝트에 드롭 다운을 추가하고 Codeview의 드롭 다운 메뉴를 사용하여 선택한 indexchanged 이벤트를 선택할 수 있습니다. 이 경우 수동 으로이 작업을 수행해야하므로 서브 루틴을 만듭니다.

Public Sub oDropDown_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ''// Do whatever you need to do here

    ''// I sometimes do this to make code manipulation easier:
    Dim _sender as DropDown = CType(sender, DropDown)

End Sub

도움이되기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top