我有一個子文件夾,它具有一個aspx頁面和一個web.config文件,該文件覆蓋根目錄中web.config中的連接字符串。問題是,如果aspx頁面包含任何用戶控件,則用戶控件仍會從根目錄中的web.config中獲取連接字符串。無論如何強迫他們使用父aspx頁面使用的web.config?Web.config覆蓋不影響用戶控件
1
A
回答
2
我想你的用戶控件位於根目錄或沒有web.config的目錄中,因此它們使用根web.config。問題的原因是這樣的。
對於解決方案,我認爲在您的頁面中,您可以通過屬性爲其用戶控件設置連接字符串。或者,您可以讓用戶控制通過方法訪問頁面上的連接字符串。
0
如果它只是一個連接字符串(或者只是幾個設置變量),您可以將它們從父頁面傳遞給您的控件。
在包含麻煩的用戶控制你的頁面,你可以參考控制在你的aspx頁面,然後在初始化你的aspx頁面和控件,您可以覆蓋在連接字符串中它的構造器/自定義函數
在你的aspx頁面
<%Reference Src="path/to/your/control"%>
代碼側(CSS)
// - check if this works first
ASP.class_name_of_control_ascx(override_connection_string);
// Other wise - created place holder on page for control/find control on page
UserControl ctrl = new ASP.class_name_of_control_ascx();
PlaceHolderOnPage.Controls.Add(ctrl);
((ASP.class_name_of_control_ascx)ctrl).RunMethod(override_connection string);
,然後選擇控制方,只要設置你的默認構造函數和一個覆蓋構造函數來接受來自父aspx頁面的連接字符串。
在您的控制中,您將使用此覆蓋連接字符串。
1
我猜你的用戶控制在用戶控件的實現直接從web.config讀取的地方。然而,這將信息綁定到與用戶控件確實有關的用戶控件。 (信息是如何獲取連接字符串,而不是連接字符串本身)。該綁定違反了單一的resposibility原則,並(間接)是什麼導致你的問題。而不是讀取用戶控件內部的連接。將連接字符串公開爲屬性,並在實例化控件時讓頁面對其進行設置。
讓它進一步進入行爲良好的設計。你的用戶控件應該甚至不應該知道連接字符串,而應該有一個工作者類,或者甚至更好,你可能想要重寫爲顯示目的設置控件,用於檢索數據的工作人員以及將檢索到的數據綁定到你的機制控制。
相關問題
- 1. Silverlight用戶控件覆蓋
- 2. 用web.config覆蓋machine.config
- 3. 覆蓋Web.config
- 4. 用戶控制事件和覆蓋
- 5. 如何使用web.other.config覆蓋文件web.config?
- 6. 覆蓋CSS樣式的性能影響
- 7. 創建覆蓋DIV wthout影響頂格
- 8. ZXing覆蓋會影響掃描區域
- 9. C#,用戶控件,事件 - 用戶控件的控件事件覆蓋?
- 10. 箱影不覆蓋div
- 11. asp.net MVC多租戶:有沒有辦法來覆蓋/影響User.Identity.IsAuthenticated?
- 12. 覆蓋WPF控件
- 13. 覆蓋帳戶控制器
- 14. 通過web.config覆蓋WebClientProtocol.Timeout
- 15. 用戶控件,自定義控件,繼承和覆蓋
- 16. 清除節的Web.config影響?
- 17. 鉻不透明覆蓋溢出問題影響邊界半徑
- 18. 安卓:<include>覆蓋並不影響佈局
- 19. 覆蓋不影響頁面的所有區域
- 20. openerp覆蓋onchange行爲而不影響基地
- 21. 覆蓋兩個控件
- 22. 覆蓋FormView控件模板
- 23. Visual Studio 2010可擴展性 - 覆蓋生成操作而不影響cproj文件
- 24. web.config中的「引用」用戶控件?
- 25. CSS影響AJAX控件
- 26. 如何覆蓋影響MVC中所有控制器的全局方法?
- 27. IIS 7.5 =嵌套的web.config將不會覆蓋在應用程序級別的web.config
- 28. 控件覆蓋.net應用程序
- 29. 覆蓋用戶控件上的DataBind,注意事項?
- 30. 如何覆蓋web.config中的繼承值?