我想将 datalist 渲染到 div 而不是表,并且重复列将通过 div 上的浮动样式进行修复。
所以任何人都知道一种覆盖渲染方法来做到这一点。
Thanks.
我找到了这个解决方案,但我发布它是为了帮助其他人;
有些用户建议使用中继器,这是正确的,但对于这种情况需要更换div
代替table
in datalist
RepeatLayout=RepeatLayout.Flow
这将使span
with br
。
但使用Horizontal
for RepeatDirection
将删除br
但仍然呈现的项目span
.
RepeatDirection=RepeatDirection.Horizontal
该声明将删除br
但仍然呈现的项目span
.
所以覆盖RenderContents
创建你自己的divs
外部span
并删除br
如果你不想使用Horizontal RepeatDirection
, 如下:
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");
}
致以我的问候
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)