我有一個包含GridView的用戶控件。 GridView具有HyperLinkField列和包含HyperLink控件的模板列。ASP.NET用戶控件的相對路徑NavigateUrl
ASP.NET項目的結構如下,在每種情況下Default.aspx頁面使用用戶控件。
- 應用程序根目錄
- 控制
- 用戶控件與GridView控件
- SystemAdminFolder
- Default.aspx的
- Edit.aspx
- OrganisationAdminFolder
- Default.aspx的
- Edit.aspx
- StandardUserFolder
- Default.aspx的
- Edit.aspx
- 控制
注意:正在使用這些文件夾來確保用戶具有正確的角色。
我需要能夠爲HyperLinkField設置DataNavigateUrlFormatString,爲HyperLink設置NavigateUrl以解析到相應文件夾中的Edit.aspx頁面。
如果將導航URL設置爲「Edit.aspx」,瀏覽器中的URL將顯示爲 'http://Application Root/Controls/Edit.aspx',而不管始發目錄如何。
作爲路徑必須是相對於當前頁面,而不是應用程序根我不能使用Web應用程序根運算符(〜/)。
如何在多個文件夾中使用相同的用戶控件並將URL解析到同一文件夾中的另一個頁面?
注意:這個問題是強烈基於類似的問題azhar2000s on the asp.net forums匹配我的問題。
謝謝,這是基於文件夾更改該路徑的一個選項。在一個理想的世界中,用戶控件不需要特定於它正在使用的文件夾的代碼(我的解決方案也沒有完全解決這個問題)。也就是說,我希望能夠將控件放在任何任意頁面中,並始終將鏈接指向與包含頁面相同的文件夾中的Edit.aspx頁面。 – 2010-04-09 02:41:38
@Daniel Ballinger - 每個角色的頁面顯着不同?也就是說,你不能簡單地根據單個頁面中的角色分配功能嗎? – Thomas 2010-04-09 04:58:42
當然,我可以將單獨的頁面修改爲一個。我會失去使用強制訪問限制的單獨文件夾的優勢。我猜這個問題我真正想要的是如何在用戶控件中關於頁面而不是用戶控件路徑創建相對URL路徑。用戶控件的路徑應該與控件所用的頁面無關。 – 2010-04-12 02:27:53