加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何覆盖Datalist被渲染成Div而不是表?

发布时间:2020-12-16 00:17:48 所属栏目:百科 来源:网络整理
导读:我想将datalist渲染为div而不是table,重复列将由div上的float样式修复. 所以任何人都知道一个覆盖渲染方法来做到这一点. 谢谢. 解决方法 我找到了这个解决方案,但我发布它来帮助别人; 一些用户建议使用转发器,这是正确的,但对于这种情况,在datalist中替换div
我想将datalist渲染为div而不是table,重复列将由div上的float样式修复.

所以任何人都知道一个覆盖渲染方法来做到这一点.

谢谢.

解决方法

我找到了这个解决方案,但我发布它来帮助别人;

一些用户建议使用转发器,这是正确的,但对于这种情况,在datalist中替换div而不是table

RepeatLayout=RepeatLayout.Flow

这将使它跨越br.
但是使用Horizo??ntal for RepeatDirection将删除br但仍然使用span渲染的项目.

RepeatDirection=RepeatDirection.Horizontal

此语句将删除br但仍使用span呈现的项目.

因此,如果您不想使用Horizo??ntal RepeatDirection,则覆盖RenderContents以在span范围外创建自己的div并删除br,如下所示:

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");

}

致以我的问候

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读