1

DataGrid에서 반복되는 VB.net 드롭 다운 상자를 채우려고합니다. 기본적으로 이미지가 많아서 사용자가 드롭 다운 목록에서 항목을 선택해야 데이터베이스에 저장할 수 있습니다.DataGrid에서 반복되는 드롭 다운 상자 채우기

Dim DDLPlayColorList = New DropDownList 
DDLPlayColorList = dgImages.FindControl("DDLPlayColorList") 

Using oConn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString) 
    Using cmd As New SqlCommand("doGetAllPlayColours", oConn) 
     cmd.CommandType = CommandType.StoredProcedure 
     oConn.Open() 
     Using dr As SqlDataReader = cmd.ExecuteReader() 
      DDLPlayColorList.DataSource = dr 
      DDLPlayColorList.DataTextField = "playColour" 
      DDLPlayColorList.DataValueField = "playColour" 
      DDLPlayColorList.DataBind() 
     End Using 
    End Using 
End Using 

findcontrol 함수를 사용하여 컨트롤을 찾은 다음 바인딩하려고 시도했지만 차이가 없습니다. 이 시도

<asp:DataGrid ID="dgImages" runat="server" Width="300" AutoGenerateColumns="false" ItemStyle-Width="300" ItemStyle-BorderWidth="3px"> 
    <Columns> 
     <asp:TemplateColumn ItemStyle-BackColor="#eaeaea" ItemStyle-Width="100"> 
      <ItemTemplate> 
       <a href="image.aspx?libid=<%#Container.DataItem("id")%>"> 
        <asp:Image ID="imgCategoryThumb" CssClass="lightbox-thumb" runat="server" Height="100" Width="100" ImageUrl='<%#Container.DataItem("path")%>' AlternateText="" /> 
       </a> 
       <asp:DropDownList id="DDLPlayColorList" runat="server" CssClass="textfield"> 
       </asp:DropDownList> 
      </itemtemplate> 
     </asp:TemplateColumn> 
    </Columns> 
</asp:DataGrid> 
+0

오류이 내 데이터 그리드입니다

DDLPlayColorList' is not a member of 'manager_imagecolouring'.

입니다 먼저 컨트롤을 캐스팅합니다 :'DDLPlayColorList = dgImages.FindContr ol ("DDLPlayColorList") as DropDownList' – Coder

+0

괜찮아요. 그냥'DDLPlayColorList = dgImages.FindControl ("DDLPlayColorList")를 DropDownList'로 넣었습니다. 그러면 그 줄에'End of statement expected.'가 나타납니다. – Scrappy

+0

또한'DDLPlayColorList 'dgImages'에서 다른 드롭 다운리스트를 생성 할 필요가 없으면'Dim DDLPlayColorList = dgImages.FindControl ("DDLPlayColorList")를 DropDownList'로 사용하십시오. 'manager_imagecolouring'이란 무엇입니까? – Coder

답변

1

: 여러 드롭 다운의 설정

Dim DDLPlayColorList As DropDownList = CType(dgImages.FindControl("DDLPlayColorList"), DropDownList) 

If DDLPlayColorList IsNot Nothing Then 
    Using oConn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString) 
     Using cmd As New SqlCommand("doGetAllPlayColours", oConn) 
      cmd.CommandType = CommandType.StoredProcedure 
      oConn.Open() 
      Using dr As SqlDataReader = cmd.ExecuteReader() 
       DDLPlayColorList.DataSource = dr 
       DDLPlayColorList.DataTextField = "playColour" 
       DDLPlayColorList.DataValueField = "playColour" 
       DDLPlayColorList.DataBind() 

      End Using 
     End Using 
    End Using  
End If 

ID를 데이터 바인딩시 :

private void OnItemDataBound(object sender, DataGridItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     Dim DDLPlayColorList As DropDownList = CType(e.Item.FindControl("DDLPlayColorList"), DropDownList) 
     DDLPlayColorList.ID = "DDLPlayColorList" & e.RowIndex.ToString() 
    } 
} 
+0

오류가 중지되었습니다 아 슈퍼. 이제 드롭 다운을 찾을 수없는 이유는 무엇입니까? 컨트롤이 각 행에 대해 반복되기 때문에 확실히 문제가되지 않습니다. – Scrappy

+0

두려움은 여전히 ​​컨트롤 자체를 찾는 데 도움이되지 않습니다. – Scrappy

관련 문제