Несколько ScriptManager на странице - PullRequest
2 голосов
/ 14 октября 2011

Мне нужно иметь несколько менеджеров скриптов на странице или возможность скрыть / удалить один из них после генерации страницы.Причина этого кроется в некоторых обходных решениях iframe для iPad.Мой код размещен ниже, извините за блок длинного кода.Спасибо за любую помощь, которую вы можете предложить.

Главная страница:

<html>
<body>
<telerik:RadScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="javascript/jquery.js" />
    <asp:ScriptReference Path="javascript/enforceMaxlength.js" />
  </Scripts>
</telerik:RadScriptManager>

<telerik:RadSplitter ID="rsMain" runat="server" Orientation="Vertical" Width="100%" BorderSize="0" PanesBorderSize="0" ResizeWithBrowserWindow="true">
  <telerik:RadPane id="rpContent" runat="server">
    <cc1:ScrollingIFrame id="sifMainContent" runat="server" Width="100%" Height="100%" />
  </telerik:RadPane>
</telerik:RadSplitter>

</body>
</html>

ScrollingIFrame User Control:

<div id="theDiv" runat="server" style="position:relative; overflow:auto"></div>

<script type="text/javascript" charset="utf-8">
  $('#<%= theDiv.ClientID %>').load('TestPage.aspx', function () {});
</script>

TestPage.aspx:

<html>
<body>
  <form id="form1" runat="server">
    <div>
      <telerik:RadScriptManager ID="ScriptManager1" runat="server" />

      [A Bunch of Dynamically Generated Controls That Require a ScriptManager...]

    </div>
  </form>
</body>
</html>

Просто чтобы уточнить, окончательная выходная страница в конечном итоге является разрешенной версией этого: (обратите внимание на два менеджера скриптов на одной странице)

<html>
<body>
<form id="mainForm" runat="server">

<telerik:RadScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="javascript/jquery.js" />
    <asp:ScriptReference Path="javascript/enforceMaxlength.js" />
  </Scripts>
</telerik:RadScriptManager>

<telerik:RadSplitter ID="rsMain" runat="server" Orientation="Vertical" Width="100%" BorderSize="0" PanesBorderSize="0" ResizeWithBrowserWindow="true">
  <telerik:RadPane id="rpContent" runat="server">
    <div id="theDiv" runat="server" style="position:relative; overflow:auto">
      <form id="form1" runat="server">
        <div>
          <telerik:RadScriptManager ID="ScriptManager1" runat="server" />

          [A Bunch of Dynamically Generated Controls That Require a ScriptManager...]

        </div>
      </form>
    </div>
  </telerik:RadPane>
</telerik:RadSplitter>

</form>
</body>
</html>

1 Ответ

1 голос
/ 17 октября 2011

На странице должен быть только один экземпляр диспетчера сценариев.В вашем случае вы пытаетесь объединить две страницы в одну, что означает, что два менеджера скриптов будут переопределять скрипты друг друга.Вам нужно удалить элемент управления RadScriptManager с внутренней страницы и оставить только тот, что на главной странице.Чтобы предотвратить ошибки сервера с помощью RadControls на внутренней странице, вы должны установить RegisterWithScriptManager = false для каждого элемента управления на внутренней странице TestPage.aspx.С этим свойством элементы управления будут отображать все, что им нужно, и полагаться, что у вас есть ScriptManager где-то еще (в данном случае на главной странице).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...