$ create(Sys.Extended.UI.ResizableControlBehavior,...)失败,错误"无法获取属性' UI'未定义的......"除非控件已经存在

时间:2014-12-04 16:50:55

标签: ajaxcontroltoolkit

此错误背后似乎有两个独立的问题。一个是使用scriptmanager而不是toolkitscriptmanager。我正在使用toolkitscriptmanager但是如果我尝试在页面上没有一个控件/行为的情况下创建一个控件/行为,我会收到此错误。如果我在页面上有控件而不更改任何其他内容,则没有错误。

我正在使用.net4.0版本的AjaxControlToolkit。

工作的:

    <div id="divTest" style="height:500px; width:500px; background:#ccc">test</div>

    <script>
        Sys.Application.add_init(function () {
            $create(
                Sys.Extended.UI.ResizableControlBehavior,
                {
                    "ClientStateFieldID": "ResizableControlExtender1_ClientState",
                    "HandleCssClass": "handle",
                    "HandleOffsetX": 0,
                    "HandleOffsetY": 0,
                    "MaximumHeight": 800,
                    "MaximumWidth": 800,
                    "MinimumHeight": 220,
                    "MinimumWidth": 478,
                    "ResizableCssClass": "resizing",
                    "id": "ResizableControlBehavior1"
                }, null, null, $get("divTest"));
        });
    </script>

    <div id="divWrapper" runat="server"></div>
            <asp:ResizableControlExtender   ID="divWrapper_ResizableControlExtender" 
                                        runat="server" 
                                        TargetControlID="divWrapper" 
                                        HandleCssClass="handle" 
                                        ResizableCssClass="resizing" 
                                        MaximumHeight="800" 
                                        MaximumWidth="800" 
                                        MinimumHeight="220" 
                                        MinimumWidth="478"
                                        HandleOffsetX="0" 
                                        HandleOffsetY="0"></asp:ResizableControlExtender>

不起作用:

    <div id="divTest" style="height:500px; width:500px; background:#ccc">test</div>

    <script>
        Sys.Application.add_init(function () {
            $create(
                Sys.Extended.UI.ResizableControlBehavior,
                {
                    "ClientStateFieldID": "ResizableControlExtender1_ClientState",
                    "HandleCssClass": "handle",
                    "HandleOffsetX": 0,
                    "HandleOffsetY": 0,
                    "MaximumHeight": 800,
                    "MaximumWidth": 800,
                    "MinimumHeight": 220,
                    "MinimumWidth": 478,
                    "ResizableCssClass": "resizing",
                    "id": "ResizableControlBehavior1"
                }, null, null, $get("divTest"));
        });
    </script>

1 个答案:

答案 0 :(得分:2)

问题解决了!

我需要做的就是挖掘工作页面的来源并找到这个脚本标签,然后将其复制到损坏的版本:

<script src="/myapp/mypage.aspx?_TSM_HiddenField_=ScriptManager1_HiddenField&amp;_TSM_CombinedScripts_=%3b%3bAjaxControlToolkit%2c+Version%3d4.1.7.607%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3afc974eef-02bb-4a84-98bd-02b839b496d1%3ade1feab2%3af9cec9bc%3a6beb6cd0" type="text/javascript"></script>

我只是在开玩笑。我切换到了jquery。