2012-07-17 2 views
0

나는 사용자 정의 usercontrol을 가지고 있으며, 그것의 옆에 버튼이있는 dropdownbox이다.사용자 콘트롤의 동적 인 인구

<asp:Panel ID="pnlSelect" runat="server">   
     <asp:Label ID="lblNameSelect" runat="server" Text="Name"></asp:Label>:&nbsp; 
     <asp:DropDownList ID="ddlDivision" runat="server"></asp:DropDownList>&nbsp; 
     <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /> 
</asp:Panel> 

런타임 중에 생성해야합니다.

 UserControl.UCDropDownBox drpDivision = LoadControl("~/UserControl/UCDropDownBox.ascx") as UserControl.UCDropDownBox; 
     drpDivision.ID = "drp1"; 
     drpDivision.LabelText = "Division"; 
     drpDivision.DataSource = dt; 
     drpDivision.DataTextField = "colDescription"; 
     drpDivision.DataValueField = "colValue"; 
     phFormContent.Controls.Add(drpDivision); 

지금 나는 다음 UserControl을 (같은 UserControl을) 처음 UserControl에서 버튼을 클릭 할 때 내가 처음 UserControl을에서 selectedvalue를 얻을 수를 생성합니다.

답변

0

UserControl을 중계기에 넣으면 훨씬 쉬울까요?

<asp:Repeater ID="multiControls" runat="server"> 
<ItemTemplate> 
    <asp:Panel ID="pnlSelect" runat="server">   
     <asp:Label ID="lblNameSelect" runat="server" Text="Name"></asp:Label>:&nbsp; 
     <asp:DropDownList ID="ddlDivision" runat="server"></asp:DropDownList>&nbsp; 
     <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /> 
    </asp:Panel> 
</ItemTemplate> 
</asp:Repeater> 

그런 다음 개체 모음을 리피터에 바인딩 할 수 있습니다. 문제를 해결하기 위해이 방법을 촬영, 당신이 할 필요가있다 : -

  1. 컬렉션에 새 항목을 추가
  2. 다시 바인드 리피터

이 크게의 생성을 단순화 않습니다뿐만 아니라 새로운 사용자 정의 컨트롤 개체를 만들지 만 이전에 유지 된 데이터를 훨씬 쉽게로드 할 수 있습니다.

+0

이 프로젝트에 대해 다른 사용자 컨트롤이 있습니다. 이전 컨트롤의 제출 단추를 클릭하면 다음 컨트롤이 표시됩니다. 일부 컨트롤은 이전 usercontrol의 선택한 값에 종속됩니다. 내 문제는 실제로 제출 단추의 onclick 이벤트를 처리하는 방법입니다. 클릭 할 때 다음 usercontrol을 표시하고 selectedvalue를 전달합니다. –