테이블 대신 div에 datalist를 렌더링하고 div의 float 스타일로 반복 열을 고정합니다.테이블 대신 div로 렌더링되도록 데이터 목록을 무시하는 방법?
그래서 아무도이를 수행하는 재정의 렌더링 방법을 알고 있습니다.
감사합니다.
테이블 대신 div에 datalist를 렌더링하고 div의 float 스타일로 반복 열을 고정합니다.테이블 대신 div로 렌더링되도록 데이터 목록을 무시하는 방법?
그래서 아무도이를 수행하는 재정의 렌더링 방법을 알고 있습니다.
감사합니다.
이 해결책을 찾았지만 다른 사람들을 돕기 위해 게시했습니다.
일부 사용자는 리피터를 사용하는 것이 좋습니다 그것은 바로,하지만 그 경우에이 br
로 span
를 만들 것입니다 datalist
RepeatLayout=RepeatLayout.Flow
에 div
대신 table
을 대체 할 수 있습니다. 그러나 RepeatDirection
에 Horizontal
을 사용하면 br
을 제거하지만 여전히 span
으로 렌더링 된 항목은 삭제합니다.
RepeatDirection=RepeatDirection.Horizontal
이 문장은 span
로 렌더링 br
하지만 여전히 항목을 제거합니다. 당신이 Horizontal RepeatDirection
을 사용하지 않으려면
그래서 다음과 같이, 자신의 divs
외부 span
을 만들고 br
을 제거하기 위해 RenderContents
를 오버라이드 (override) :
protected override void RenderContents(HtmlTextWriter w)
{
writer.WriteBeginTag("div");
writer.WriteAttribute("id", this.ClientID);
writer.WriteAttribute("class", cssClass);
writer.Write(HtmlTextWriter.TagRightChar);
foreach (DataListItem li in this.Items)
{
writer.WriteBeginTag("div");
writer.WriteAttribute("id", li.ClientID);
writer.WriteAttribute("class", li.CssClass);
writer.Write(HtmlTextWriter.TagRightChar);
li.CssClass = null; // clear css not to added in span
li.RenderControl(w);
writer.WriteEndTag("div");
}
writer.WriteEndTag("div");
}
난 항상 레이아웃을 흐름에 DataList에 설정
컨트롤 대신 <asp:Repeater>
컨트롤을 사용하십시오. <asp:Repeater>
의 <ItemTemplate>
안에는 <div>
태그를 사용하여 레이아웃을 제어 할 수 있습니다. 리피터는 자신이 제공 한 HTML과 다른 HTML을 렌더링하지 않으므로 레이아웃을 제어 할 수 있습니다.
답해 주셔서 감사합니다.이 답변을 염두에 두지 만, 페이징 및 기타 옵션을 사용하는 사용자 정의 컨트롤 데이터리스트가 있습니다. – Mhmd
페이징은 리피터로 구현하기가 정말 어렵습니다. PagedDataSource를 사용하여 데이터를 제어 한 다음 페이지 매김을 직접 렌더링 할 수 있습니다.다른 컨트롤이 할 수있는 리피터 컨트롤로는 아무 것도 할 수 없었습니다. –
문제는 컨트롤이 내 프로젝트의 많은 페이지에 5 년 동안 배치되어 모든 일을 할 수 있도록 사용자 정의되었지만 사용자의 의견이 맞습니다. 다시 말해서 알려 드리겠습니다 :) Thanks again – Mhmd
내 안부 like :
RepeatLayout="Flow" CssClass="my_repeater_cssclass"
여기에서 문제는 닷넷 위에 여전히 br 태그를 가지고 놀 수 있습니다.
내 솔루션은 DataList 자체가 적용된 CSS 클래스를 통해 DataList가 표시하도록 생성하는 br 태그로 설정됩니다. 어떤 이유로 당신이 보여주고 싶은 않는 BR 태그를 가지고있는 경우
.my_repeater_cssclass br
{
display : none;
}
그런 다음, 당신의 BR 태그를 CSS 클래스를 제공하고 당신이 원하는 것을 할 수 있도록 ...처럼 내 실제 예를 들어 나는 결국 그것을 사용하는 모든 행 후 float를 지우려면 :
.my_repeater_cssclass br.clear
{
display : block;
clear : both;
}
당신이 다음이 당신의 해결책이 될 수 없습니다 다루는 BR 태그 많은이있는 경우. 그러나 나는 그것을 좋은 간단한 해결책으로 생각한다.
문제가 해결되면 대답을 표시하십시오. –
나는 여기 시스템이 2 일 동안 기다려야합니다. :) – Mhmd