Hiển thị kết quả từ 1 đến 8 / 8
  1. #1
    Tham gia
    27-08-2007
    Location
    TpHCM
    Bài viết
    18
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật ! Sự kiện SelectIndex của DropdownList trong VB.net

    Mấy pác ơi! Cứu!
    Mình mô tả thía này nha: Khi click vào DropDownList_A thì DropDownList_B sẽ lọc theo mã DropDownList_A, vậy nó là sự kiện gì? Mình dùng sự kiện SelectedIndexChanged như sau:

    Private Sub DD_COMPONENT_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DD_COMPONENT.SelectedIndexChanged
    Dim per As New Person
    Dim dtcnn As DataTable
    dtcnn = per.ID_CURE(DD_COMPONENT.SelectedValue)
    DD_CURE.DataSource = dtcnn
    DD_CURE.DataTextField = "NAME"
    DD_CURE.DataValueField = "ID"
    DD_CURE.DataBind()
    End Sub

    nhưng ko được. Nó chỉ chạy được khi click 1 nút nào đó làm load_page lại thì nó mới ra được. Mình thử để AutopostBack cái DropDownList_B nhưng khi thêm mới nó mặc định chọn value đầu tiên trong DropDownList_B!!!
    Mình muốn khi chọn 1 value bên DropDownList_A thì lập tức bên DropDownList_B thay đổi dữ liệu theo mà ko ảnh hưởng gì khi add hoặc edit, làm sao bây giờ? Mong hùi âm của các pác, xin cám ơn!
    Quote Quote

  2. #2
    Tham gia
    07-06-2005
    Bài viết
    130
    Like
    0
    Thanked 0 Times in 0 Posts
    Khi bạn add (nói chung là làm thay đổi datasource của dropdown B) mặc nhiên nó sẽ bind lại data, mà bind lại data thì đương nhiên là sẽ chọn lại dòng đầu tiên thôi.

  3. #3
    Tham gia
    09-01-2003
    Bài viết
    153
    Like
    0
    Thanked 1 Time in 1 Post
    Bạn phải set AutopostBack=True cho DropDownList_A, khi post back lại server sẽ lấy mã đã chọn của A để làm ra sự kiện cho DropDownList_B. Nhưng khi postback lại để tránh DropDownList_A bị reload lại data và giá trị đầu tiên thì bạn phải sử dụng IsPostBack.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
    DropDownList_A.DataSource = YourData
    DropDownList_A.DataTextField = "NAME"
    DropDownList_A.DataValueField = "ID"
    DropDownList_A.DataBind()

    End If
    End Sub

    Protected Sub DropDownList_A_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Me.DropDownList_B.DataSource = Me.DropDownList_A.SelectedValue
    Me.DropDownList_B.DataTextField = "NAME_B"
    Me.DropDownList_B.DataValueField = "ID_B"
    Me.DropDownList_B.DataBind()
    End Sub


    Happy Coding
    tn

  4. #4
    Tham gia
    27-08-2007
    Location
    TpHCM
    Bài viết
    18
    Like
    0
    Thanked 0 Times in 0 Posts

    Vui lắm !

    Quote Được gửi bởi saigon1990 View Post
    Bạn phải set AutopostBack=True cho DropDownList_A, khi post back lại server sẽ lấy mã đã chọn của A để làm ra sự kiện cho DropDownList_B. Nhưng khi postback lại để tránh DropDownList_A bị reload lại data và giá trị đầu tiên thì bạn phải sử dụng IsPostBack.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
    DropDownList_A.DataSource = YourData
    DropDownList_A.DataTextField = "NAME"
    DropDownList_A.DataValueField = "ID"
    DropDownList_A.DataBind()

    End If
    End Sub

    Protected Sub DropDownList_A_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Me.DropDownList_B.DataSource = Me.DropDownList_A.SelectedValue
    Me.DropDownList_B.DataTextField = "NAME_B"
    Me.DropDownList_B.DataValueField = "ID_B"
    Me.DropDownList_B.DataBind()
    End Sub


    Happy Coding
    tn
    Mình đã làm theo hướng dẫn của bạn và ra rồi, cám ơn bạn nhiều lắm

  5. #5
    Tham gia
    12-11-2008
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    cam on cac anh da co san noi dung nay de thao luan em dang can noi dun nay! em xin cam on cac anh nhieu

    [=========> Bổ sung bài viết <=========]

    em xin lỗi em lại viết tiêng việt ko dấu! cảm ơn các anh nhiều!
    Được sửa bởi nguyenthang1234 lúc 23:55 ngày 13-11-2008 Reason: Bổ sung bài viết

  6. #6
    Tham gia
    27-09-2008
    Bài viết
    60
    Like
    0
    Thanked 0 Times in 0 Posts
    Ngoài DropDownList thì 1 số control sau cũng để mặc định AutoPostBack = false là: RadioButton, RadioButtonList, CheckBox, CheckBoxList và ListBox. Lý do vì những control này sinh ra để select là chính. Nếu để AutoPostBack = true thì mỗi lần select 1 item trang web sẽ load lại và làm chậm chương trình. Chỉ khi cần (như trong ví dụ của bạn) mới để là true thôi.

  7. #7
    Tham gia
    20-11-2008
    Location
    Hải Phòng
    Bài viết
    87
    Like
    0
    Thanked 1 Time in 1 Post
    Cảm ơn các anh nhiều vì nhờ gợi ý của anh mà em làm được bài của em, mặc dù nó không liên quan gì đến bài này cả.
    Cảm ơn rất nhiều!!

  8. #8
    Tham gia
    04-01-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Sẵn tiện cho hỏi : mình muốn truyền giá trị dropdownlistA đang chọn sang một trang khác thì làm thế nào .

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •