我有一堆操縱ASPX頁面元素的方法,此時將它們封裝到它們自己的靜態對象中是有意義的。但是,好像我沒有訪問ASPX頁面以外的表單元素。有關如何去做這件事的任何想法?類內部訪問ASPX元素
0
A
回答
0
您需要將Page對象作爲其中一個參數傳遞給您的類方法,這樣它的元素將在類內部可訪問。
例如,如果你有一個類,如:
public class CMyDataClass {
public bool CompareText(System.Web.UI.Page i_oPage) {
TextBox oTextBox = i_oPage.FindControl("TextBox1");
return (oTextBox.Text == "My Data");
}
}
您可以使用它像這樣從頁面:
CMyDataClass oMyDataClass = new CMyDataClass();
if (oMyDataClass.CompareText(this)) {
Response.Write("Ok!");
}
0
如果你真的想封裝的功能,我想你最好的創建一個將相關元素傳遞給構造函數的類。
如果您的目標是在其他頁面重複使用,您可以創建一個基本頁面,從中繼承。另一種選擇是在您從頁面引用的母版頁中進行操作。
我認爲需要更詳細的問題才能給出更詳細的答案。
1
您需要向網頁本身傳遞到類,見下面的例子:
ASPX頁面
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtTest" runat="server" Text="Test" />
</div>
</form>
代碼隱藏
protected void Page_Load(object sender, EventArgs e)
{
Process p = new Process(this);
string s = p.GetTextBoxValue();
}
類
public class Process
{
public Page thePage { get; set; }
public Process(Page page)
{
thePage = page;
}
public string GetTextBoxValue()
{
TextBox tb = (TextBox)thePage.FindControl("txtTest");
return tb.Text;
}
}
進程可能不是該類的最好名稱,但這完全是一個演示。另外,將Page對象傳遞到另一個類中會將該類傳遞給Page對象。我會建議重新考慮你所設計的類的設計,以便完全不依賴頁面對象。
相關問題
- 1. 如何訪問聚合物元素內部的外部元素
- 2. 從量角器中的元素內訪問內部元素
- 3. 無法訪問元素內部功能
- 4. 在JSON內部訪問JSON元素
- 5. 從json對象訪問內部元素
- 6. 訪問JSON數組的內部元素
- 7. 訪問外部類的XAML元素
- 8. 內部類訪問
- 9. PHP:數組內部訪問元素陣列內部對象
- 10. colorbox內的訪問元素
- 11. 訪問類的元素
- 12. Qt C++內部類訪問外部類
- 13. 訪問外部類的內部類
- 14. 內部類訪問外部類成員
- 15. 內部類訪問EJB
- 16. 訪問內部類型
- 17. 如何訪問外部組件的內部元素
- 18. 從內部類訪問外部類訪問器
- 19. 訪問元素
- 20. 訪問元素
- 21. 訪問元素
- 22. 訪問元素
- 23. 訪問元素?
- 24. 訪問元素
- 25. 訪問元素
- 26. 訪問元素
- 27. 訪問元素
- 28. 訪問元素
- 29. 訪問元素
- 30. 訪問元素
爲什麼一個靜態對象?它真的沒有國家嗎?此外,這是你想要只有基類的東西,所以你可以繼承子類中的功能?最後,如果它正在操作aspx頁面元素,那麼使用元素和封裝的功能創建Web用戶控件更有意義嗎?總之,你能舉一個你有什麼和你想要什麼的實例嗎? – NotMe
我不知道你的意思是「我沒有訪問ASPX頁面以外的表單元素」。你的意思是你使用FindControl並且它不返回任何東西?請發佈代碼示例來解釋你在做什麼,並更清楚地解釋錯誤。 –