2013-03-21 2 views
0

asp.net C# 페이지의 특정 gameweek에 조명기를 추가 할 수있게하려고합니다.프로그래밍 방식으로 ASP.NET C# 페이지에 컨트롤 추가 단추 클릭

사용자가 추가 버튼을 클릭하면 두 개의 드롭 다운이 만들어 져서 집과 원정 팀을 선택할 수 있습니다. 사용자가 추가하고자하는만큼의 조명기를 허용 할 수 있기를 원하기 때문에 컨트롤을 페이지에 추가하는 동적 인 방법이 필요합니다. 모든 조명기가 추가되면, 나는 그것들을 모두 데이터베이스에 저장하기를 원합니다.

스크롤 트로프 포럼 내가 컨트롤을 얻기 위해 다음과 같은 방법을 발견은 프로그래밍 방식으로 추가 할 :

C#을

 protected void AddTeamButton_Click(object sender, EventArgs e) 
    { 
     DropDownList homeTeamName = new DropDownList(); 
     homeTeamName.Items.Add("Arsenal"); 
     homeTeamName.Items.Add("Aston Villa"); 
     homeTeamName.ID = "homeTeam"; 
     PlaceHolder1.Controls.Add(homeTeamName); 

     DropDownList awayTeamName = new DropDownList(); 
     awayTeamName.Items.Add("Arsenal"); 
     awayTeamName.Items.Add("Aston Villa"); 
     awayTeamName.ID = "awayTeam"; 
     PlaceHolder1.Controls.Add(awayTeamName); 
    } 

영문 :

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 

이 그러나 단 한 세트를 생성 컨트롤을 두 번 클릭하면 아무 것도 나타나지 않습니다. 또한 저장해야 할 때 액세스 할 고유 ID를 만들지 않습니다.

어떤 아이디어로 이러한 문제를 해결할 수 있습니까?

+0

컨트롤의 각 쌍에 고유 ID를 부여하십시오. 그렇지 않으면 한 번만 추가되는 것이 놀랄 일이 아닙니다. –

+0

컬렉션의 항목 수에 따라 반복되는 템플릿과 함께 ListView 컨트롤을 사용하는 것이 좋습니다. 그러면 단추를 클릭하여 컬렉션의 1 개 항목을 추가 할 수 있습니다. ListView 컨트롤은 고유 한 ID 등을 처리합니다. 툴바에서 ListView를 드래그 앤 드롭하고, ItemTemplate을 추가하고, DataSource를 추가하고, DataBind()를 호출합니다. ListView에 대한 MSDN 페이지를보십시오 http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx – Bazzz

+0

어떻게하면됩니까? – JackofAll

답변

0

asp.net의 동적 컨트롤이 그렇게 쉬운 것은 아닙니다.
페이지에 필요할 때까지 각 게시물 (이상적으로는 Init)에 작성해야합니다.
또한 고유 ID를 부여해야합니다.

여러 개의 컨트롤을 만들려면 세션에 카운터를 유지하고이를 사용하여 Init에 필요한 컨트롤을 반복하고 생성하는 것이 좋습니다.

AddTeamButton_Click에서 카운터를 증가시키고 하나의 컨트롤 집합 만 추가합니다.

+0

감사합니다. 대신 그리드 뷰를 사용해야 할 수도 있습니다. 나는 정말로 그들을 좋아하지 않아. – JackofAll

+0

그것은 독자적으로 이러한 컨트롤을 만드는 것이 책 보관보다 더 낫다. – nunespascal

관련 문제