2014-06-20 47 views
0

我有一個兩列GridView,日期消息。綁定到GridView數據可以包含一個或多個URL在消息塔,例如:如何檢測GridView單元格內的超鏈接,並將它們的樣式與其他文本不同?

Date  Message 
6/18/2014 "Site http://somesite was created." 
6/18/2014 "There was a problem when trying to access https://www.google.com" 
... 

我試圖做的是風格只在消息列作爲超鏈接網址,即將超鏈接樣式應用於它們,以便正常文本將具有與超鏈接不同的樣式/顏色。我真的不知道如何解決這個問題。有沒有更好的和更便宜的解決方案比手動處理每個單元格,因爲它被添加?

GridView控件:

<asp:GridView ID="gridView1" runat="server" 
AutoGenerateColumns="false" 
Width="100%" 
CssClass="gridviewstlye"   
EnableModelValidation="True"> 
<AlternatingRowStyle CssClass="gridviewalter" /> 
<Columns> 
    <asp:BoundField DataField="Date" HeaderText="Date" />  
    <asp:BoundField DataField="Message" HeaderText="Message"/> 
</Columns> 
<HeaderStyle HorizontalAlign="Left" Font-Bold="True" Height="33px" /> 
<RowStyle CssClass="gridrowstyle" /> 

回答

1

你不能有不同的風格的文本,如果它是一個元素中。

另一方面,從後面的代碼處理它將是非常乏味的。

您必須迭代gridview的項目並查找包含http的行。

如果它有http,則必須計算單詞http的實例並創建一個循環。

在循環內部,您需要找到它旁邊的http和空格字符(以提取URL)。將它保存爲一個變量,並有類似

r.Cells(1).Text = r.Cells(1).Text.Replace(URLVariable, "<a href=" & _ 
URLVariable & ">" & URLVariable & "</a>" 
相關問題