2009-06-04 5 views
3

나는 무엇을 성취하려고하는지 설명 할 것이다 :ASP.NET에서 새로운 하이퍼 링크를 어떻게 동적으로 생성합니까?

코드 뒤에 루프를 만들어서 원하는대로 많은 컨트롤을 만들 수있는 상황을 원한다. PHP 코드와 HTML 코드를 혼합하여 PHP를 사용하면서이 작업을 수행 할 수 있습니다. 이렇게하면 실제 HTML 태그를 동적으로 생성 할 수 있습니다.

ASP.NET에서이 기능을 복제 할 수있는 방법을 찾지 못했습니다.

나는 새로운() 객체의 배열을 만들고, 속성을 설정하고, aspx 파일로 전달되기를 기대하지만 Init() 함수와 같은 코드에서 루프를 사용하는 것에 대해 생각해 봤지만, 일하지 마라.

어떻게하면됩니까?

답변

9

당신은 단순히이 작업을 수행 할 수 있습니다

HyperLink hyp = new HyperLink(); 
    hyp.ID = "hypABD"; 
    hyp.NavigateUrl = ""; 
    Page.Controls.Add(hyp); 
4

음, ASP.Net에서 하이퍼 링크와 LinkButtons 차이가있다 명심

당신은 하이퍼 링크, 당신은, 하이퍼 링크 개체를 만드는 새로운 객체를 생성 한 후 추가하여 원하는만큼을 만들 수 있습니다 원하는 경우 패널 또는 스팬 또는 일부와 같은 일부 컨트롤의 컨트롤 컬렉션에 추가합니다.

LinkButtons는 약간 다릅니다. 서버에 다시 게시하는 링크를 만들려면 Repeater 컨트롤을 사용해야합니다. (글쎄, 당신은 할 필요는 없지만 해킹 작업입니다.)

리피터 컨트롤을 사용하여 하이퍼 링크를 만들 수 있으며 가능한 경우 권장할만한 방법입니다.

4

많은 asp.net에서이 작업을 수행하는 방법이있다 : 당신이 정말로, 그냥 PHP로 나처럼, 영문 마크 업에 직접 <% %> 태그를 사용하여 루프를 넣을 수 싶었다면

  1. 클래식 ASP. 이것은 이 아니며을 권장하지 않습니다.
  2. 폼에 자리 표시 자 또는 패널 컨트롤을 배치하고 코드 하이퍼 링크 컨트롤 또는 앵커 태그를 원하는대로 만들 수 있으며 자리 표시 자의 컨트롤 컬렉션에 추가 할 수 있습니다. 이것은 조금 나아졌지만 여전히 최적은 아닙니다.
  3. 페이지에 적당한 수의 하이퍼 링크 컨트롤을 넣고 기본적으로 visible 속성을 false로 설정하고 필요한 것을 "사용"할 수 있습니다. 이것은 asp.net 페이지 라이프 사이클과 약간의 괴리 때문에 # 2보다 선호됩니다.
  4. 이러한 링크는 어딘가에서 왔는데 어딘가에는 보통 데이터베이스 또는 다른 적절한 데이터 소스가 있습니다. 따라서 데이터 소스로 —을 연결하여 해당 데이터 소스를 리피터, 그리드 뷰, 상세 뷰 또는 이와 유사한 컨트롤에 바인딩하십시오. 아마도 이것이 최선의 선택 일 것입니다.
4

당신이 컨트롤을 생성 할 경우 동적으로 &이 (컨트롤을 클릭 할 때/변경, 그것은 같은 페이지로 돌아 올 것이다 즉) 서버에 그 다시 게시를 할 필요가 없습니다 - 당신의 컨트롤을 사용할 수 있습니다 System.Web.UI.HtmlControls 네임 스페이스.

HtmlAnchor link = new HtmlAnchor(); 
link.href = "www.stackoverflow.com"; 
Page.Controls.Add(link);

희망 사항은 충분한 배경을 제공합니다.

편집 : 위의 코드를 루프에서 사용할 수 있습니다. & 고정 값을 데이터베이스/개체에서 오는 값으로 바꿉니다. 당신이 동적으로 ASP.Net 하이퍼 링크 제어 를 creat에하려면

관련 문제