2012-02-28 3 views
4

나는 어떻게하는지 알아내는 데 도움이 필요합니다.asp.net에서 html 요소 추가하기

Flicker.com에 저장되어있는이 갤러리 (galleriffic) 및 일부 이미지를 얻었으므로 깜박임 API를 사용하여 이미지를 가져 왔지만 직접 수동으로 추가하여 갤러리를 테스트하십시오.

이제 플리커 API를 사용하여 이미지를 HTML에 삽입하는 좋은 방법을 찾고 있습니다.

나는이 htmltextwriter를 발견하고 기능

Response.Write(GetDivElements());

을 사용하지만, 이것은 HTML의 상단에 아닌 body 태그 내부 사업부 년대를 추가하고있다.

내 qustions은 다음과 같습니다

  1. 는 서버 측에 html 태그를 구축 할 수있는 좋은 방법 HtmlTextWriter writer = new HtmlTextWriter(stringWriter)입니까?

  2. 다른 요소에 HTML을 추가하는 더 좋은 방법이 있습니까? Response.Write("");?

    당신이 asp.net의 이전 스타일을 사용하고, MVC를 ASP.NET하지 않는 경우

답변

4

, 당신은 단지 ID와 RUNAT = "서버"와 사업부를 만들 수 있습니다. 그러면 html에 직접 쓸 수 있습니다.

aspx 페이지

<div id = "DivINeedToAddStuffTo" runat="server" /> 

또한

DivINeedToAddStuffTo.InnerHtml = GetDivElements(); 

aspx.cs, 나는 당신이 Placeholders으로 찾고 시도 할 수

+0

yeap 나는 그것을 테스트했고 내가 고맙다고 생각한 것이 었습니다. – samy

+0

@samy, 예, 작동하지만 viewstate를 확인하십시오. 그것은 div의 내용을 포함합니다. 효과적으로 마크 업을 두 번 추가했습니다. 페이지가 잠재적으로 커지지 않게하려면 아래의 내 대답을 확인하십시오. –

2

당신의 HTML 마크 업을 만들 지정된 HtmlTextWriter를 사용하여 잘못된 아무것도 표시되지 않습니다. 그렇게하면 이미지 컨트롤의 인스턴스를 만든 다음 자리 표시자를 추가 할 수 있습니다.

+0

도움을 주셔서 감사합니다. – samy

7

여기 마크 업을 추가해야 할 때가 있습니다.

MyPlaceholder.Controls.Add(new Literal() { Text="<div>some markup</div>"}); 

뒤에 내 코드에서 내 페이지

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

에서

내가 그것을 이런 식으로 이유는

1) 당신이 구조에서 필요로하는 곳에 자리 표시자를 넣을 수 있습니다 페이지의

2) 런타임시 Controls 컬렉션에 Literal을 추가하여 Vi ewState는 내용이 부풀어 오릅니다.페이지가 렌더링되기 전에 당신이 그 코드를 가질 수

 foreach (var item in items) 
     { 
      Literal literal = new Literal(); 
      literal.text = item.html; //Assuming the item contains the html. 
      MyPlaceholder.Controls.Add(literal); 
     } 

:

+0

도움을 주셔서 감사합니다. – samy

+0

전 몇 시간 전에 다른 파일이나 데이터베이스의 뷰 상태를 저장할 수 있습니까? 이 기법은 큰 뷰 상태에서 도움이 될 것입니까? – samy

+0

내가 아는 한 SessionState에서만 가능합니다. ViewState는 페이지 컨트롤의 속성 값을 포함합니다. 페이지 수준에서 지속성 매체로 작동합니다. 쓰레기로 부풀어 오르더라도 반 시간. 매우 신중해야합니다. ViewState 만 200K 이상인 페이지를 보았습니다. ViewState의 콘텐츠를 보여주는 좋은 사이트 (예 : http://ignatu.co.uk/ViewStateDecoder.aspx)가 있습니다. 체크 아웃 할만한 가치가있다. –

1

당신은 ASP 리터럴 컨트롤을 사용할 수 있어야합니다.

을하는 데 도움이

희망

편집

미안 해요, 난 당신이 이미지 (들)에 대한 링크와 HTML을 알았는데, 내가 잘못 생각과 실제하지 이미지 자체, 저스틴의 대답은 당신에게 맞을 것입니다.

+0

시간을내어 주셔서 감사하고 나를 도우려는 것에 감사드립니다. :) – samy

1
var ctrl = new WebControl(HtmlTextWriterTag.Div) { CssClass = "SomeClass" }; 
    ctrl.Attributes["style"] = "float:left;display:inline-block;margin:3px;"; 

    ctrl.Controls.Add(new Image 
    { 
     ImageUrl = 
     Page.ResolveUrl("image path here") 
    }); 

    this.Controls.Add(ctrl);