asp.net 母版和 extjs的Formpanel

EricPan2022 2010-02-09 10:53:33
近日在写一个ASP.net下的应用,使用到母版,但在内容页想使用ExtJS的FormPanel时,不能正常将FormPanel applyTo 一个div中。只能applyTo:document.body,
如果使用
var form1 = new Ext.FormPanel({ applyTo:"divId"})
时,页面加载时会提示未知运行时异常。
我使用的是ExtJs3.0
环境是VS2008。
...全文
200 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
EricPan2022 2010-02-23
  • 打赏
  • 举报
回复
樓下沒人啦?有人回一下不?呵呵
EricPan2022 2010-02-23
  • 打赏
  • 举报
回复

母版页加内容页最后生成的代码就这样子。
经测试,如果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>

EricPan2022 2010-02-23
  • 打赏
  • 举报
回复
引用 7 楼 net_lover 的回复:
一般都是错误使用了html元素的id导致的。你可以比较最终生成的html源代码正常与不正常的情况下有什么区别


没看出区别。最终生成的HTML是一样,我是在脚本中加入
Ext.onReady(function(){
var form2 =
new Ext.Form({
applyTo:document.body,
items:[new Ext.Button({text:'ok'})
]
})
});
lin364653705 2010-02-23
  • 打赏
  • 举报
回复
在你的母版页当中,是否正确引用了ext所需文件?ext-base.js这些?
另外,你的DIV是写在母版页中,用内容页来 applyTo??
KK3K2005 2010-02-23
  • 打赏
  • 举报
回复
applyto的调用时机控制的对不对
孟子E章 2010-02-23
  • 打赏
  • 举报
回复
一般都是错误使用了html元素的id导致的。你可以比较最终生成的html源代码正常与不正常的情况下有什么区别
EricPan2022 2010-02-23
  • 打赏
  • 举报
回复
對呀,就是想知道問題在哪。
單純運行母版和內容頁沒問題,是一個空白的頁面,<body>中只有一個form生成。
腳本在純HTML檔中亦可以向<body>添加一個FormPanel。
但合起來就有問題。
孟子E章 2010-02-23
  • 打赏
  • 举报
回复
母板頁+内容页的最终结果也是html,如果你在html里测试是可以的,那么,在母板頁+内容页里也应当是是可以的。除非你的写法有问题
EricPan2022 2010-02-23
  • 打赏
  • 举报
回复
可這個跟ID沒關系,都沒使用過服務器端控件,只是一個普通的母板頁加內容頁,然後在內容頁上使用ExtJS框架,顯示一個FormPanel在Document.Body中。
孟子E章 2010-02-23
  • 打赏
  • 举报
回复
在使用到服务器控件客户端id的时候需要使用服务器控件的ClientID来生成,不能直接使用ID属性
rjzou2006 2010-02-09
  • 打赏
  • 举报
回复
等楼下回答。。。。。。。。。
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-02-09 10:53
社区公告
暂无公告