0

我试图弄清楚如何从一个类中找到我的主 .aspx 页面中的“div”,这可能吗?如果有怎么办?我已经尝试了下面的代码但无法正常工作

HtmlGenericControl step1 = (HtmlGenericControl)Page.FindControl("step1")

我知道这是我在文件后面的代码中执行此操作的方式,但在这种情况下,我想从类文件中执行此操作。

先感谢您。

基本上我想要完成的是,我的页面中有多个 div,当满足某些条件时,所有的 div 都有 runtat="server" visible="false" 我希望能够更改 visible="true" . 我在多个页面中有这种情况,所以我希望能够创建一个类并检查那里的条件,并通过这种方式使 div 可见或不可见

4

4 回答 4

1

div 元素必须具有 runat="server" 属性:

<body>
  <form id="form1" runat="server">
    <div id="step1" runat="server"></div>
  </form>
</body>

现在,您可以在一个单独的类中找到带有方法的控件,该类是从页面的类后面的代码中调用的:

public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    Class1 class1 = new Class1();
    class1.FindDiv(this);
  }
}

分班:

public class Class1
{
  public HtmlGenericControl FindDiv(Page page)
 { 
    HtmlGenericControl step1 = (HtmlGenericControl)page.FindControl("step1");
    return step1;
 }
}
于 2012-10-17T05:32:07.337 回答
0

如果您使用 ASP 面板而不是 div,您可以访问它并且面板呈现为 div。如果你把 runat="server" 给一个 div 你应该能够访问它。

于 2012-10-17T05:29:02.807 回答
0

如果它不是服务器端控件,则不能这样做。

如果它是一个 HTML 控件,您需要为runat="server"div 设置属性以在后面的代码中找到它。

于 2012-10-17T05:32:21.497 回答
-1

尝试

HtmlGenericControl div = (HtmlGenericControl)this.FindControl("div1");

注意:为了使此代码正常工作,您需要在 aspx 页面上具有 runat="server" 属性。

于 2012-10-20T09:36:39.470 回答