近日在写一个ASP.net下的应用,使用到母版,但在内容页想使用ExtJS的FormPanel时,不能正常将FormPanel applyTo 一个div中。只能applyTo:document.body,
如果使用 
var form1 = new Ext.FormPanel({ applyTo:"divId"})
时,页面加载时会提示未知运行时异常。
我使用的是ExtJs3.0
环境是VS2008。

解决方案 »

  1.   

    在使用到服务器控件客户端id的时候需要使用服务器控件的ClientID来生成,不能直接使用ID属性
      

  2.   

    可這個跟ID沒關系,都沒使用過服務器端控件,只是一個普通的母板頁加內容頁,然後在內容頁上使用ExtJS框架,顯示一個FormPanel在Document.Body中。
      

  3.   

    母板頁+内容页的最终结果也是html,如果你在html里测试是可以的,那么,在母板頁+内容页里也应当是是可以的。除非你的写法有问题
      

  4.   

    對呀,就是想知道問題在哪。
    單純運行母版和內容頁沒問題,是一個空白的頁面,<body>中只有一個form生成。
    腳本在純HTML檔中亦可以向<body>添加一個FormPanel。
    但合起來就有問題。
      

  5.   

    一般都是错误使用了html元素的id导致的。你可以比较最终生成的html源代码正常与不正常的情况下有什么区别
      

  6.   

    applyto的调用时机控制的对不对
      

  7.   

    在你的母版页当中,是否正确引用了ext所需文件?ext-base.js这些?
    另外,你的DIV是写在母版页中,用内容页来 applyTo??
      

  8.   


    没看出区别。最终生成的HTML是一样,我是在脚本中加入
    Ext.onReady(function(){
      var form2 = 
      new Ext.Form({ 
        applyTo:document.body,
        items:[new Ext.Button({text:'ok'})
        ]
      })
    });
      

  9.   


    母版页加内容页最后生成的代码就这样子。
    经测试,如果ApplyTo的目标是body没有问题,如果ApplyTo的目标是一个在Asp.net表单中的某一个Div对象时则会有提示runtime error.存为普通的HTML文件都会这样。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>
    母版和ExtJS
    </title><link href="ext-3.0.0/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
        <script src="ext-3.0.0/adapter/ext/ext-base-debug.js" type="text/javascript"></script>
        <script src="ext-3.0.0/ext-all-debug.js" type="text/javascript"></script>    
        
    <script type="text/javascript">
        Ext.onReady(function()
        {
            var pnl1 = new Ext.Panel({
                applyTo: 'extPnl1',
                contentEl: 'tb1',
                width: 90
            });
            var form2 = new Ext.FormPanel({
                applyTo: Ext.get("ex1tForm2")
                , width: 99
                , height: 200
                , items: [
                    { tag: 'h1', text: '表单测试' },
                    { tag: 'h3' },
                    new Ext.Button({ text: 'ok', width: 90, handler: function() { Ext.Msg.alert('提示', 'ok'); } })
                ]
            });
        });</script>
    </head>
    <body>
        <span>表单前</span><br />
        <form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NDU2MTA1MmRkDXlRaIKsQ0iGR2y/ymBWOJ7rHMQ=" />
    </div>       <span>PlaceHolder前</span><br />
        <div>
            
    <div id="extPnl1">
        <table id="tb1">
            <tr>
                <th>H1</th><th>H2</th>
            </tr>
            <tr>
                <td>1.1</td><td>1.2</td>
            </tr>
        </table>
    </div>
    <div id='ex1tForm2'>
    </div>    </div>
        <br />
        <span>PlaceHolder后</span><br />
        </form>
        <span>表单后</span><br />
    </body>
    </html>