我有一堆操纵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. 访问JSON数组的内部元素
- 4. 从json对象访问内部元素
- 5. 访问外部类的XAML元素
- 6. 内部类访问
- 7. PHP:数组内部访问元素阵列内部对象
- 8. colorbox内的访问元素
- 9. 内部类访问外部类成员
- 10. Qt C++内部类访问外部类
- 11. 访问外部类的内部类
- 12. 访问内部类型
- 13. 从内部类访问外部类访问器
- 14. 访问元素
- 15. 访问元素?
- 16. 访问元素
- 17. 访问元素
- 18. 访问元素
- 19. 访问元素
- 20. 访问元素
- 21. 访问元素
- 22. 局部变量访问内部类(java)
- 23. 从类内部访问外部方法
- 24. 从单独的类访问内部类
- 25. Objective-C访问类内部类方法
- 26. Java内部类访问问题
- 27. 使用jquery访问外部元素
- 28. Android - 访问小部件中的元素
- 29. 外部onReady访问extjs元素
- 30. 在外部页面上访问元素
为什么一个静态对象?它真的没有国家吗?此外,这是你想要只有基类的东西,所以你可以继承子类中的功能?最后,如果它正在操作aspx页面元素,那么使用元素和封装的功能创建Web用户控件更有意义吗?总之,你能举一个你有什么和你想要什么的实例吗? – NotMe
我不知道你的意思是“我没有访问ASPX页面以外的表单元素”。你的意思是你使用FindControl并且它不返回任何东西?请发布代码示例来解释你在做什么,并更清楚地解释错误。 –