[研究][ASP.NET]GridView中HyperLinkField用法範例
2021-08-10
Visual Studio 2019 + ASP.NET + C# + WebForm + Web Application
筆記一下。
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
Caption="檔案、圖片列表" EmptyDataText="無檔案"
AutoGenerateColumns="False" DataKeyNames="seq" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="FileName" HeaderText="FileName" SortExpression="FileName" />
<asp:HyperLinkField DataTextField="FileName" HeaderText="FileName2"
DataNavigateUrlFields="SubDir, FileName" Target="_blank"
DataNavigateUrlFormatString="../UploadFile/{0}/{1}" Text="{1}" />
</Columns>
</asp:GridView> |
把 HyperLinkField 做「將這個欄位轉換為 TemplateField」,感覺有點奇怪,DataNavigateUrlFields 有2個參數,轉換 NavigateUrl 後剩下一個 SubDir,測試一下。
<asp:TemplateField HeaderText="FileName3"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("SubDir", "/{0}/{1}") %>' Target="_blank" Text='<%# Eval("FileName") %>'> </asp:HyperLink> </ItemTemplate> </asp:TemplateField> |
deploy 後執行會出錯【索引 (以零為起始) 必須大於或等於零,並且小於引數清單的大小。】
檢查一下,沒轉換前的寫法,執行正確;轉換後則不行執行。
再改一下
<asp:TemplateField HeaderText="FileName4"> <ItemTemplate> <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# String.Format((string)ConfigurationManager.AppSettings["WebSiteURL"] + @"{0}/{1}",Eval("SubDir"), Eval("FileName")) %>' Target="_blank" Text='<%# Eval("FileName") %>'></asp:HyperLink> </ItemTemplate> </asp:TemplateField> |
********************************************************************************
微軟官方範例
HyperLinkField 類別 (System.Web.UI.WebControls) | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/api/system.web.ui.webcontrols.hyperlinkfield?view=netframework-4.8
<asp:hyperlinkfield text="Details..." navigateurl="~\details.aspx" headertext="Order Details" target="_blank" /> |
<asp:hyperlinkfield datatextfield="UnitPrice" datatextformatstring="{0:c}" datanavigateurlfields="ProductID" datanavigateurlformatstring="~\details.aspx?ProductID={0}" headertext="Price" target="_blank" /> |
(完)
相關
HyperLinkField.DataNavigateUrlFields 屬性 (System.Web.UI.WebControls) | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/api/system.web.ui.webcontrols.hyperlinkfield.datanavigateurlfields?view=netframework-4.8
HyperLinkField.DataNavigateUrlFormatString 屬性 (System.Web.UI.WebControls) | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/api/system.web.ui.webcontrols.hyperlinkfield.datanavigateurlformatstring?view=netframework-4.8
沒有留言:
張貼留言