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

divの代わりにASPPanelを使用する場合、uはそれにアクセスでき、Panelは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 に答える