【发布时间】:2012-11-27 21:00:48
【问题描述】:
我已经为此奋斗了一段时间,我需要一些指导。
我正在使用 ASP.NET 4.0 WEBFORMS 进行编码。
问题是:如何将文本框、标签或任何其他控件公开给另一个类。
我有一个网络表单(见下文)。
public partial class WebForm1 : System.Web.UI.Page
{
}
然后引用它并将其发送到另一个类。
public class SearchInitializer
{
private WebForm1 _webform1;
public SearchInitializer(WebForm1 Webform1)
{
_webform1 = Webform1;
}
public void ChewSettings()
{
_webform1 //can't find any control in here?!
}
}
首先我想创建一个公共属性,我认为我可以从我发送给新类的引用中访问它。但是不!
public partial class WebForm1 : System.Web.UI.Page
{
public string KeywordBox1
{
get {return txt_keyword.Text;}
set {txt_keyword.Text = value;}
}
}
我试图将 Webform 继承到其他类。使该财产可用,但那里没有运气。
public class SearchInitializer : Webform1
{
private WebForm1 _webform1;
public SearchInitializer(WebForm1 Webform1)
{
_webform1 = Webform1;
}
public void ChewSettings()
{
_webform1 //can't find any control in here?!
}
}
好的,抽象类在这里可能有用,继承一切。但我想我错了。我有事件和静态类,所以它们可以与页面对话。但我真的不想使用静态类作为容器来保存我的控件中的所有信息。 所以这些是我尝试过的例子,但都失败了。所以这基本上是我试图扩展我所知道的;)感谢阅读! 为什么他们失败了,我应该怎么做?
按要求编辑!
public partial class WebForm1 : System.Web.UI.Page
{
protected void btn_click(object sender, EventArgs e)
{
SearchInitializer searchIni = new SearchInitializer(this);
}
}
【问题讨论】:
-
你为什么要这样做?我看不出有任何理由这样做......
-
你的财产方法是正确的,为什么 但是不! ?但最有可能的是你在错误的时刻调用它。添加更多上下文。
-
展示你如何创建和使用
SearchInitializer -
Intellisense 根本不显示该属性?当我写 _webform1.我无法访问该属性..?!我应该尝试 findcontrol 并这样做吗?制作公共财产有点失败.. ?!
-
@Igor 完成阅读我的最新问题