2012-10-25 2 views
0

GridView에 GridView 및 몇 가지 컨트롤이있는 웹 양식이 있습니다. Gridview의 EdtItemTemplate에 DropDownList가 있습니다.GridView asp.net의 DropDownList에 데이터 바인딩

이 DropDownList를 내 CodeBehind 파일의 일부 메서드와 바인딩하여 LisItems 형식의 배열을 반환해야합니다.

내가 직면 한 문제는 이것입니다. 컨트롤이 EditItemTemplate에 있기 때문에 FindControl ("MyControlID")을 사용하여 GridView 이벤트에서 작동하지 않는 것 같습니다. 즉, OnRowUpdating 이벤트를 사용하지 않는 한 null을 반환합니다. 즉, 컨트롤을 찾을 수없는 것입니다. ,하지만 그 전에 컨트롤을 데이터 바인딩해야하므로이 이벤트를 사용할 수 없습니다.

어쨌든 < % # Bind ("MyMethodName") %>를 사용하여 컨트롤을 바인딩 할 수 있습니까? 이

public static class Fruits 
{ 
    public static List<string> GetFruits() 
    { 
     return new string[] { "Apple", "Mango", "Banana", "Grapes" }.ToList(); 
    } 
} 

이 페이지에 그리드를 추가처럼

+0

itemdatabound 이벤트를 시도 했습니까? – Kadir

+0

안녕하세요, 아니요. –

+0

GridView 내에서이 이벤트를 찾을 수없는 것 같습니다. –

답변

0

나는 모든 준비가 당신에게 생각

<asp:GridView runat="server" ID="grid" AutoGenerateColumns="false" OnRowEditing="grid_RowEditing"> 
     <Columns> 
      <asp:TemplateField HeaderText="Selected Fruit"> 
       <ItemTemplate> 
        <asp:Label runat="server" ID="Fruit" Text='<%# Eval("Fruits") %>' /> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:DropDownList runat="server" ID="fruits" DataSourceID="fruitsDS" /> 
       </EditItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Edit"> 
       <ItemTemplate> 
        <asp:Button runat="server" ID="btnEdit" Text="Edit" CommandName="Edit" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

그리고이있는,이

가의 App_Code에서 데이터의 클래스를 작성하십시오 오브젝트 데이터 소스를 추가하여 편집 템플릿의 드롭 다운을 바인딩하십시오.

<asp:ObjectDataSource ID="fruitsDS" runat="server" SelectMethod="GetFruits" TypeName="Fruits" /> 

희망이 도움이 될 수 있습니다.

0

protected void RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowState == DataControlRowState.Edit) 
    { 
     DropDownList dl = (DropDownList)e.Row.FindControl("myList"); 
     dl.DataSource = new string[] { "A", "B" }; 
     dl.DataBind(); 
    } 
} 
0

의 gridview rowdatabound가 bind the data to dropdown in gridview.

DropDownList로의 DDL = (DropDownList로) e.Row.FindControl ("ddlcity")로 사용할 것이다 시도; ddl.DataSource = s;