asp:Treeview如何主要显示由于showline而可见的图像的alt属性

时间:2014-01-10 08:59:48

标签: c# asp.net .net

我想要的是完全删除那些线条图像(甚至不在源代码中显示)或在其中放置一些替代文字。 alt文本不应为空。

<asp:TreeView ID="tvCategories" runat="server" ShowLines="true" ShowExpandCollapse="true" NodeWrap="true" ClientIDMode="Static" />

it is generating images for them like 

<img alt="" src="/WebResource.axd?d=dfVL09bUhBneFGh9D0vDj08RF3Nrn9hb0Lh74Ri0hqgqmkAuOeYNlcDnBs2UP4NuOmbnPWYc2_OLskPjZI7ZHoMPKIYGQVmcGAiYgA2&amp;t=635065079764912806">

我想要一些没有javascript的解决方案

我已经通过jquery在文档上放置了一些alt文本,但是一些爬虫仍然将alt文本读为空[可能在加载之前]。

示例javascript是

$('#viewCategoriesForBlog img[alt=""]').attr('alt', 'category');

我使用的是asp.net 4.0网页表单。

1 个答案:

答案 0 :(得分:1)

有点像黑客,但无论如何。

您将使用覆盖TreeView方法的自定义树视图,而不是使用内置Render。在那里,我首先以标准方式呈现树内容,然后删除alt=""(您可以替换它而不是删除)。

public class CustomTreeView : TreeView
{
    protected override void Render( HtmlTextWriter writer )
    {
        StringBuilder sb = new StringBuilder();

        using ( StringWriter sw = new StringWriter( sb ) )
        using ( HtmlTextWriter tw = new HtmlTextWriter( sw ) )
        {
            base.Render( tw );

            sw.Flush();

            sb.Replace( "alt=\"\"", "" );

            writer.Write( sb.ToString() );
        }
    }
}
相关问题