none
Как использовать библиотеку AJAX Control Toolkit? RRS feed

  • Вопрос

  • Извиняюсь за нубский вопрос. Хочу использовать контролы из этой библиотеки. На мастер-странице помещен скрипт-менеджер. Обычные элементы попробовал(Update Panel) вроде всё работает. Подключил AJAX Control Toolkit, в панели инструментов новые элементы появились, помещаю их на страницу - в Visual Studio они норм отображаются. Запускаю на выполнение - на странице их нет. Как заставить их работать?

    Заранее спасибо!

Ответы

    • Помечено в качестве ответа I.Vorontsov 7 мая 2010 г. 6:08
    • Снята пометка об ответе super-medvеd 7 мая 2010 г. 10:43
    • Помечено в качестве ответа I.Vorontsov 11 мая 2010 г. 7:24
  • Если вы используете последнюю версию Toolkit, то необходимо использовать 

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />

    (работаю в VS2010).

    Чтобы отловить событие изменения индекса таба, то используйте серверное событие ActiveTabChanged и установите при этом AutoPostBack в true.

    Если хотите все делать на клиенте (что имхо намного сложнее), то нужно использовать что-то типа

     <aspt:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1" OnClientActiveTabChanged="tabChanged"/>

                function tabChanged(sender, args){
                    tabIndex = sender.get_activeTabIndex();
                    switch(tabIndex)
                    {
                        case 1:  myfunction('"<%=TextBox1.ClientID%>"');break;
                        case 2:  myfunction('"<%=TextBox2.ClientID%>"');break;
                        break;
                    }
                }

    Hope this helps.

    • Помечено в качестве ответа I.Vorontsov 11 мая 2010 г. 7:23

Все ответы

  • Здесь можно найти много интересного

    http://www.asp.net/ajax/AjaxControlToolkit/Samples


    Модератор
  • Спасибо, посмотрел. Интересует элемент TabContainer: 1. <ajaxToolkit:TabContainer runat="server" 2. OnClientActiveTabChanged="ClientFunction" <- !!!! 3. Height="150px"> 4. <ajaxToolkit:TabPanel runat="server" 5. HeaderText="Signature and Bio" 6. <ContentTemplate> 7. ... 8. </ContentTemplate> 9. /> 10. </ajaxToolkit:TabContainer> С JavaScript не сталкивался до этого. Если я правильно понял событие OnClientActiveTabChanged будет управляться внешней функцией "ClientFunction". Как задать эту функцию? И как вызывать её?
    • Помечено в качестве ответа I.Vorontsov 7 мая 2010 г. 6:08
    • Снята пометка об ответе super-medvеd 7 мая 2010 г. 10:43
    • Помечено в качестве ответа I.Vorontsov 11 мая 2010 г. 7:24
  • А какой ScriptManager нужно использовать? "Родной" или ToolkitScriptManager? Со стандартным не работает - работают только стандартные элементы. Если заменяю на ToolkitScriptManager - ошибка:

    "Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. "

     

  • У вас стоит .net 3.5 sp1 ?

    http://www.microsoft.com/downloads/details.aspx?FamilyID=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en

    Попробуйте зарегистрировать сборку

    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

  • Если вы используете последнюю версию Toolkit, то необходимо использовать 

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />

    (работаю в VS2010).

    Чтобы отловить событие изменения индекса таба, то используйте серверное событие ActiveTabChanged и установите при этом AutoPostBack в true.

    Если хотите все делать на клиенте (что имхо намного сложнее), то нужно использовать что-то типа

     <aspt:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1" OnClientActiveTabChanged="tabChanged"/>

                function tabChanged(sender, args){
                    tabIndex = sender.get_activeTabIndex();
                    switch(tabIndex)
                    {
                        case 1:  myfunction('"<%=TextBox1.ClientID%>"');break;
                        case 2:  myfunction('"<%=TextBox2.ClientID%>"');break;
                        break;
                    }
                }

    Hope this helps.

    • Помечено в качестве ответа I.Vorontsov 11 мая 2010 г. 7:23