¿Cómo enlazar la URL de un GridView HyperLinkField cuando el valor enlazado contiene dos puntos?

Estoy tratando de vincular un GridView HyperLinkField de modo que la columna enlazada se use como un valor de parámetro en la URL. Material bastante estándar: nada elegante, pero el enlace falla cuando la columna enlazada contiene dos puntos, es decir,:. Soy mi caso particular, este valor es una cadena que representa una duración de tiempo, p. "14:35" o "1:07:19".

Aquí está mi GridView, con el valor del tiempo vinculado a la URL de HyperLinkField.

<asp:GridView ID="ResultsGridView" runat="server" AutoGenerateColumns="False" 
    DataSourceID="ResultsDataSource" EnableModelValidation="True" 
        AllowPaging="True">
    <Columns>
        <asp:BoundField DataField="Year" HeaderText="Year" SortExpression="Year" />
        <asp:HyperLinkField DataNavigateUrlFields="RunTime" 
            DataTextField="RunTime" HeaderText="Hyperlink" 
            DataNavigateUrlFormatString="LinkedPage.aspx?param={0}" />
        <asp:BoundField DataField="RunTime" HeaderText="Time" 
            SortExpression="RunTime" />
        <asp:BoundField DataField="FullName" HeaderText="Name" 
            SortExpression="FullName" ReadOnly="True" />
    </Columns>
</asp:GridView>

Produce HTML como este. Tenga en cuenta que la<a>as etiquetas @ no tienenhref atributo.

<tr>
    <td>2010</td><td><a>34:58</a></td><td>34:58</td><td>Joe Schmoe</td>
</tr><tr>
    <td>2010</td><td><a>35:30</a></td><td>35:30</td><td>Rod Krueger</td>
</tr><tr>
    <td>2010</td><td><a>35:38</a></td><td>35:38</td><td>Mike Johnson</td>
</tr>

Pero si cambio el campo enlazado de RunTime a Year, es decir, a una columna que no contiene dos puntos en los valores, funciona como se esperaba. Tome el GridView anterior y cambie el atributo DataNavigateUrlFields del HyperLinkField, de la siguiente manera:

    <asp:HyperLinkField DataNavigateUrlFields="Year" 
        DataTextField="RunTime" HeaderText="Hyperlink" 
        DataNavigateUrlFormatString="LinkedPage.aspx?param={0}" />

Y ahora la salida HTML es correcta, como esta:

<tr>
    <td>2010</td><td><a href="LinkedPage.aspx?param=2010">34:58</a></td><td>34:58</td><td>Joe Schmoe</td>
</tr><tr>
    <td>2010</td><td><a href="LinkedPage.aspx?param=2010">35:30</a></td><td>35:30</td><td>Rod Krueger</td>
</tr><tr>
    <td>2010</td><td><a href="LinkedPage.aspx?param=2010">35:38</a></td><td>35:38</td><td>Mike Johnson</td>
</tr><tr>

Así que la clave de mi pregunta es esta: ¿cómo enlazo una columna de datos con valores que contienen dos puntos a la URL de un HyperLinkField? ¿O, en su defecto, crear el mismo hipervínculo vinculado por otro método?

Cambiar el formato de los datos para no incluir dos puntos sería un último recurso, porque LinkedPage.aspx espera el valor del parámetro en ese formato, y ya está escrito, probado y en uso.

Respuestas a la pregunta(2)

Su respuesta a la pregunta