2012-11-25 3 views
0

나는 두 가지 질문이 있습니다. 먼저, .aspx의 리피터에 DDL을 넣습니다. 내가 뒤에있는 코드에서 내 DDL을 채울 수있는 방법이며,Dynamic DropdownList

<HeaderTemplate> 
    <ul class ="horizontal"> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <li> 
<img src="<%# DataBinder.Eval(Container.DataItem, "ImagePath") %>" width="60" height="40" alt = "<%# DataBinder.Eval(Container.DataItem, "ProductName") %>"/> 
     <p>ID: <asp:Literal ID="ProductIDLiteral" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ProductID") %>'></asp:Literal></p> 
     <p> 
      <asp:Literal ID="NameLiteral" runat="server" Text="Name: "></asp:Literal><asp:Literal ID="ProductNameLiteral" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "ProductName") %>'></asp:Literal> 
     </p> 
     <p> 
      <asp:Literal ID="Literal1" runat="server" Text="Price: "></asp:Literal><asp:Literal ID="UnitPriceLiteral" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "UnitPrice") %>'></asp:Literal> 
     </p> 
     <p> <asp:Literal ID="QuantityLiteralLiteral" runat="server" Text="Quantity: "></asp:Literal><asp:DropDownList ID="DDLQuantity" runat="server" ><asp:ListItem></asp:ListItem> 
     </asp:DropDownList></p> 
     <asp:Literal ID="Literal" runat="server"></asp:Literal> 
</li> 
    </ItemTemplate> 
    <FooterTemplate> 
     <asp:Button ID="Button1" runat="server" Text="Validate!" /> 
    </ul> 
    </FooterTemplate> 
</asp:Repeater> 

아니라, 첫 번째 질문 : 여기 내 코드입니까? 다음 DDL을 채우는 방법은 <입니다. 1-2-3-4> 소스 값이 4이면 감사합니다!

답변

1

당신은 채울 Init 이벤트를 사용할 수 리피터의 데이터 바인딩 이벤트에서

public int? Number //number of elements. It can be stored in viewstate etc. depends on logic 
     { 
      get 
      { 
       return (int?)ViewState["number"]; 
      } 
      set 
      { 
       ViewState["number"] = value; 
      } 
     } 

folliwing 사용할 수 있습니다 시작하는 DropDownList : 당신이 사용할 필요가

protected void DropDownList1_Init(object sender, EventArgs e) 
{ 
    for (int i = 1; i <= 4; i++) 
    { 
     ((DropDownList)sender).Items.Add(i.ToString()); 
    } 
} 
+0

초기화 이벤트? 어디입니까? – IsraGab

+0

'DropDownList'에서'OnInit' 이벤트로 찾을 수 있습니다. –

0

protected void Repeater1_DataBinding(object sender, RepeaterItemEventArgs e) 
     { 
      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==     
       ListItemType.AlternatingItem) 
      { 
       DropDownList DDLQuantity = (DropDownList) e.Item.FindControl("DDLQuantity"); 
       if (DDLQuantity != null) 
       { 
        for (int i=0;i<Number;i++) 
         DDLQuantity.Items.Add(new ListItem(i.ToString(),i.ToString())); 
       } 
      } 
     } 
0

repeater ItemDataBound 이벤트. 드롭 다운을 바인딩하는 방법 ???

protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e) 
     { 
      DropDownList dd = (DropDownList)e.Item.FindControl("control_id"); 
      dd.DataSource = ""; 
      dd.DataBind(); 

     } 

로직이 다른 경우 드롭 다운시 적용됩니다.

protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e) 
     { 

      ///////////// 
      //logic for source_value 
      ///////////// 
      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
      { 
       yourObj obj = (yourObj)e.Item.DataItem; 
       if (yourObj.source_value == 4) 
       { 
        dd.Items.Add("one"); 
        dd.Items.Add("two"); 
        dd.Items.Add("three"); 
        dd.Items.Add("four"); 
       } 
      } 

     }