如果页面上不存在依赖控件,则抛出错误

时间:2010-03-04 11:55:55

标签: c# asp.net jquery ajaxcontroltoolkit

好的,我正在制作一些JQuery版本的AJAXToolkit控件(我们遇到了工具包的问题),并希望在页面上有一个共同版本的脚本。

为此,我打算使用JQueryControlManager控件,并使用它来动态插入脚本,最好只使用页面上控件所需的脚本。

有没有人知道一种有效的方法:

  • 如果某些其他JQueryControls
  • ,则检查页面上是否存在ControlManager控件
  • 将每个控件添加到ControlManager中的集合,假设第一个点的答案未返回JQueryControlManager实例

OR

有没有人建议更好的解决方案?

1 个答案:

答案 0 :(得分:1)

对于特定的脚本,ASP.NET已经有一个很好的ScriptManager类,它支持你要做的事情。呼叫

Page.ClientScript.RegisterClientScriptInclude(key, url);

来自您的控件,每个脚本都有一个唯一的键,框架将负责避免重复。 ClientScriptManager上还有其他类似的方法可能有用。

如果您仍然需要创建ControlManager的实例,您可以只是枚举Page.Controls集合,寻找该类型的控件,即。

public ControlManager GetControlManager()
{
    foreach (Control control in Page.Controls)
    {
        if (control is ControlManager)
            return (ControlManager)control;
    }

    ControlManager manager = new ControlManager();
    Page.Controls.Add(manager);

    return manager;
}

您可以尝试将ControlManager实例存储在Page.Items字典中。

警告:我没有测试过此代码,因此将其视为伪代码。