Programaticamente adicionando um hiperlink a uma lista com marcadores que não é DisplayMode = Hyperlink

Eu tenho um controle de lista com marcas do asp.net que, até hoje, foi criado e usado apenas para texto sem formatação. Uma nova solicitação de design pede que eu ligue alguns desses itens em hiperlinks. Portanto, a lista com marcadores precisará conter alguns itens de texto simples e alguns hiperlinks. Se eu alterá-lo para DisplayMode = Hyperlink, mesmo se eu deixar o valor em branco, as entradas que devem ser apenas texto simples ainda se tornarão links clicáveis.

Uma solução que eu acho que posso fazer funcionar, é usar um controle Literal e usar HTML (<a href...) nas linhas que precisam ser links. Isso implicará um pouco de re-trabalho algum código antigo, então antes de eu tentar que eu realmente quero saber se isso é possível fazer com o BulletedList existente.

EDITAR:

Eu realmente não consegui encontrar nada sobre isso em nenhum lugar, e geralmente me considero um bom Googler. Então, para uma ou duas almas perdidas e confusas que se encontram no mesmo cenário em algum momento na próxima década, aqui está minha implementação completa da excelente resposta oferecida abaixo:

No code-behind da página:

foreach (SupportLog x in ordered)
{
    blschedule.Items.Add(new ListItem(x.Headline, "http://mysite/Support/editsupportlog.aspx?SupportLogID=" + x.SupportLogID));
}

blschedule.DataBind();

Observe o DataBind no final --- isso é necessário para cair no evento DataBound:

protected void blschedule_DataBound(object sender, EventArgs e)
{
    foreach (ListItem x in blschedule.Items)
    {
        if (x.Value.Contains("http")) //an item that should be a link is gonna have http in it, so check for that
        {
            x.Attributes.Add("data-url", x.Value);
        }
    }
}

Na cabeça da página .aspx:

<script src="<%# ResolveClientUrl("~/jquery/jquery141.js") %>" type="text/javascript"></script>
    <script>

        $(document).ready(function () {

           $('#<%=blschedule.ClientID %> li').each(function () {
               var $this = $(this);
               var attr = $this.attr('data-url');

               if (typeof attr !== 'undefined' && attr !== false) {
                   $this.html('<a href="' + $this.attr('data-url') + '">' + $this.text() + '</a>');
               }
           });
       });

    </script>

A instrução if é necessária para garantir que apenas os itens com o atributo "data-url" sejam transformados em links e não transformar TODOS os itens em links.

questionAnswers(1)

yourAnswerToTheQuestion