我試圖綁定一個GridView HyperLinkField,使綁定的列被用作URL中的參數值。相當標準的東西 - 沒有什麼奇特的,但是當綁定列包含冒號時,綁定失敗,即:
。我是我的特例,這個值是一個表示持續時間的字符串,例如「14:35」或「1:07:19」。當綁定值包含冒號時如何綁定GridView HyperLinkField的URL?
這是我的GridView,綁定到HyperLinkField url的時間值。
<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>
它產生這樣的HTML。請注意,<a>
標籤沒有href
屬性。
<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>
但是如果我切換綁定字段從運行時一年,即到不包含的值的冒號一列,它按預期工作。就拿GridView控件之上,並改變HyperLinkField字段的DataNavigateUrlFields屬性,就像這樣:
<asp:HyperLinkField DataNavigateUrlFields="Year"
DataTextField="RunTime" HeaderText="Hyperlink"
DataNavigateUrlFormatString="LinkedPage.aspx?param={0}" />
而現在的HTML輸出是正確的,是這樣的:
<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>
所以我的問題的螺母是此:如何將包含冒號的數據列綁定到HyperLinkField的URL?或者,如果失敗,請用另一種方法創建相同的綁定超鏈接?
將數據格式更改爲不包含冒號將是最後的手段,因爲LinkedPage.aspx需要該格式的參數值,並且已經寫入,測試並正在使用。
如何使用這個超鏈接加載第二個gridview在同一頁面? – aspiring
@aspiring使用LinkButton或ImageButton,附加ItemCommand事件的處理程序,然後包含第二個網格的UpdatePanel。事件處理程序代碼用於綁定此網格的數據源。 –
我不確定你是什麼意思的更新面板。當前字段是一個簡單的Boundfield,在gridview中顯示一個名稱。因此,如果我要使用鏈接按鈕,我將不得不找到一種方法來顯示鏈接按鈕上的數據作爲文本或者某事物。也許你可以發佈一個答案[here。](http://stackoverflow.com/q/30188620/2061309)我會搜索並嘗試你的建議。 – aspiring