在Asp.net 中使用 ExtJs viewport + Asp.net控件
Posted on 2009-02-26 11:41 joyyuan97 阅读(3315) 评论(4) 编辑 收藏 举报我在Asp.net中使用ExtJs的viewport时,某块区域是用contentEl方式嵌入一块Asp.net区域,遇到一个问题:Asp.net中服务器按钮事件不能响应。
通过查看页面输出的HTML(document.body.innerText = document.body.innerHTML; )发现ExtJs viewport生成的内容是直接放在Body节点下。而Asp.net控件只有再Form下,才能响应控件的事件。
解决方法:在执行完viewport.render()后,将Body下所有内容移到Form下。 对应函数如下:
1 // 将ExtJs内容,添加到Form中
2 function InitFormControlLocation() {
3 parentTarget = document.forms[0];
4 for (i = document.body.childNodes.length - 1; i > -1; i--) {
5 tag = document.body.childNodes[i].tagName;
6 if (tag.toUpperCase() != 'FORM') {
7 obj = document.body.removeChild(document.body.childNodes[i]);
8 parentTarget.insertBefore(obj, parentTarget.firstChild);
9 }
10 }
11 }
2 function InitFormControlLocation() {
3 parentTarget = document.forms[0];
4 for (i = document.body.childNodes.length - 1; i > -1; i--) {
5 tag = document.body.childNodes[i].tagName;
6 if (tag.toUpperCase() != 'FORM') {
7 obj = document.body.removeChild(document.body.childNodes[i]);
8 parentTarget.insertBefore(obj, parentTarget.firstChild);
9 }
10 }
11 }
*个人感觉ExtJs支持Asp.net的情况,但是一直没有找到方法。看了ExtJs的源码后,试着改了Ext.getBody 方法,并没有达到效果 --JoyYuan97
如果您有其他方法实现,请给我留言。
分类:
12 开发
, ExtJs & Asp.net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述