0

如何将 Editor1 作为参数传递:

在我的 aspx.cs 中,我正在调用同一项目的 .cs 文件中的函数,如下所示:

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDown abs = new DropDown();
    abs.dd(this.DropDownList2, this.DropDownList3);
}

.CS 文件代码

 public void dd(DropDownList DropDownList2, DropDownList DropDownList3)
    {
         //My code which contains DropDownList2 DropDownList3 and Editor1
   }

我得到的错误是:

Error   1   The name 'Editor1' does not exist in the current context    

我通过 DropDownList2 和 DropDownList3 的方式我无法通过 Editor1(它是一个 ajax 控件)。我如何通过它?

4

2 回答 2

1

在过去的某个时候,在 ASP.NET 中,当我在 .aspx 中声明控件时,我确实遇到过这样的事情,由于某种原因,它们在后面的代码中无法访问,在这种情况下,我只是重命名了这个坏页面,创建了新页面相同的代码,它有帮助。但是之后,当我切换到MVC时,我发现没有这种情况:)

如果没有您需要的控件名称,请查看文件“yourpageneme.aspx.designer.cs”,在您的情况下,它称为“Editor1”,这意味着它在后面的代码中不可用,因此您需要重新创建一次同样,有时仅重新创建此控件无济于事,在这种情况下,您需要重新创建页面,它仍然没有出现在“.aspx.designer.cs”中。

于 2011-01-06T10:07:16.957 回答
0

如果由于某种原因您的控件没有被设计器分配支持属性,您可以在事件处理程序中获取对它的引用,因此:

var editor1 = (AjaxControlToolkit.HTMLEditor.Editor)FindControl("Editor1");

并将其作为额外参数传递给 dd 方法:

public void dd(
    DropDownList DropDownList2,
    DropDownList DropDownList3,
    AjaxControlToolkit.HTMLEditor.Editor Editor1)
于 2011-01-06T10:13:20.217 回答