Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Đổ Dữ Liệu Vào DropDownList trong GridView

    mình đang làm web đơn giản là có 1 gridview, được load dữ liệu từ cột
    CongViec(maCongViec,TenCongViec,MaLoaiCongViec). trong GridView có 1 DropDownList chứa TenLoaiCongViec từ bảng LoaiCongViec(MaLoaiCongViec,TenLoaiCongViec). Như vậy mình sẽ phải cho dữ liệu vào dropdownlist thế nào.mong các bạn giúp
    Code design
    Mã:
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                                    <Columns>
                                        <asp:BoundField DataField="MaCongViec" HeaderText="Mã Công Việc" />
                                        <asp:BoundField DataField="TenCongViec" HeaderText="Tên Công Việc" />
                                        <asp:TemplateField HeaderText="Loại Công Việc">
                                            <ItemTemplate> 
                                                <asp:DropDownList ID="DropDownList1" runat="server" Width="150" >
                                                </asp:DropDownList>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                 </asp:GridView>
    Code load
    Mã:
    Public Function getList(ByVal q As String)
            Dim conn As SqlConnection
            Dim da As SqlDataAdapter
            conn = New SqlConnection("Server =(local);Integrated Security = True;Database = MoTaCongViec")
            da = New SqlDataAdapter(q, conn)
            Dim ds As DataSet
            ds = New DataSet
            conn.Open()
            Try
                da.Fill(ds)
            Catch ex As Exception
            End Try
            conn.Close()
            Return ds
        End Function
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            GridView1.DataSource = getList(" select * from Cong_Viec")
            GridView1.DataBind()
    
    
    
    
        End Sub

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    [IMG]images/smilies/daydreaming.gif[/IMG] Cái nè bạn cần phải dùng hàm Findcontrol để lấy ra được cái dropdownlist trong gridview.

    Khi bạn Bind dữ liệu cho gridview xong, thì duyệt toàn bộ các hàng, với mỗi hàng thì dùng hàm Findcontrol=>ép kiểu về dropdownlist. Sau đó, gán source cho cái dropdownlist kia là ok.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu mình đoán ko lầm thì ý của bạn là vậy phải ko
    Mã:
    GridView1.DataSource = getList(" select * from Cong_Viec")
            GridView1.DataBind()
            Dim row As GridViewRow
            Dim ddl As DropDownList
            For Each row In GridView1.Rows
                ddl = CType(GridView1.Rows(row.RowIndex).Cells(2).FindControl("DropDownList1"), DropDownList)
                ddl.DataSource = getList("select * from Loai_Cong_Viec")
                ddl.DataTextField = "TenLoaiCongViec"
                ddl.DataValueField = "MaLoaiCongViec"
                ddl.DataBind()
            Next
    mình mới chỉ viết asp ngày hum nay là ngày t2 à,bạn nói rõ hơn cho mình hiện cái text ban đầu dc ko,mình muốn giống như combobox trong winform là combobox.text="abc" là hiện dc,nhưng cái này mình đặt ddl.text="abc" thì lỗi ,thanks

  4. #4
    mình làm dc rồi và post lên lun henh
    Mã:
    <asp:TemplateField HeaderText="Loại Công Việc">
                                            <ItemTemplate> 
                                                <asp:DropDownList ID="DropDownList1" runat="server" Width="150" OnLoad="DropDownList1_load">
                                                </asp:DropDownList>
                                            </ItemTemplate>
                                        </asp:TemplateField>
    Mã:
     Protected Sub DropDownList1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim ddl As DropDownList = CType(sender, DropDownList)
            ddl.DataSource = getList("select * from Loai_Cong_Viec")
            ddl.DataTextField = "TenLoaiCongViec"
            ddl.DataValueField = "MaLoaiCongViec"
            ddl.DataBind()
        End Sub
    Nhưng mình vẫn còn 1 vần đề là làm sao để dropdownlist.text="[du lieu LoaiCongViec mà load từ cột CongViec vào nhỉ]"

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    [IMG]images/smilies/daydreaming.gif[/IMG]hi. Chính là do bạn viết cái load dữ liệu trong sự kiện load của dropdownlist nên ko làm được việc đó. Còn nếu muốn tùy chỉnh load gì đó, thì bạn làm theo cái cách tớ bảo ấy. Đó là:
    +đổ dữ liệu cho gridview ngon lành trước đã.
    +Duyệt từng hàng của gridview
    +trên mỗi hàng thực hiện 2 việc:
    1.lấy ra tên công việc ở cột cv of gridview. Cái này dùng FindControl("label hiển thị tên công việc").
    2.Lấy ra dropdownlist trên hàng của gridview. Sau đó Fill Data cho dropdownlist theo cái tên cv lấy ở bước 1.

    thế là xong. bạn thử coi[IMG]images/smilies/1.gif[/IMG]

  6. #6
    Mã:
    foreach (GridViewRow row in gridview1.Rows)
            {
                DropDownList ddl = (DropDownList)row.FindControl("drodownlist1");
                ddl.DataSource = datasource;
                ddl.DataTextField = "text";
                ddl.DataValueField = "value";
                ddl.DataBind();
            }
    các bạn duyệt từng dong của gridview đó sau rồi tìm cái dropdownlist đó là được

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • 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
  •