ext fireEvent的问题

sling2007 2010-02-25 03:15:07
下面的简单页面中,每点击grid中的某列,就会弹出这个列的单元格的内容
现在的问题是:
刚刚打开这个页面,任何一行都不是选中的,
这个时候我想点击rrrrrr这个button,让button生成一个id,比如是2
根据id=2寻找grid中某个id是2的行,并弹出它的内容?

注意grid中没有任何一行是被点击过的,所以我想使用fireenent,但是调试部出来,
大侠们帮帮忙啦!!!

<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />

<script type="text/javascript">
Ext.onReady(function(){
var data=[['1','linename111'],['2','linename222'],['3','linename333']];
var store=new Ext.data.SimpleStore({
data:data,
fields:['biglineid','linename']
});
var cm = new Ext.grid.ColumnModel([
{header:'路线名称',dataIndex:'linename',sortable:true}
]);
var grid = new Ext.grid.GridPanel({
renderTo:"hello",
id:'hello_grid',
cm:cm,
store:store,
height:200
});

grid.on('click',function(){
var rec=Ext.getCmp('hello_grid').getSelectionModel().getSelected();
alert(rec.data['linename']);
});

});

function test(){
var id=2;
Ext.getCmp('hello_grid').fireEvent('click',this);

}
</script>

<div id='hello' ></div>
<button onclick="test()">rrrrrr</button>
...全文
227 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foolbirdflyfirst 2010-02-26
  • 打赏
  • 举报
回复
你得先选上,触发的grid onclick事件内的
var rec=Ext.getCmp('hello_grid').getSelectionModel().getSelected();
才能读到当前选到的对象啊。
比如,你把test函数这么改改

function test(){
var id=2;
,s = Ext.getCmp('hello_grid').getSelectionModel();
s.selectRow(id);//选择第3行
Ext.getCmp('hello_grid').fireEvent('click');//可打印出linename333
}
sling2007 2010-02-26
  • 打赏
  • 举报
回复
up .
sling2007 2010-02-25
  • 打赏
  • 举报
回复
YaoZhengWu 2010-02-25
  • 打赏
  • 举报
回复
帮不了,顶起!!
修改后的作用: 通过修改后该版本可以灵活地实例化对象,因此可以更加好地整合到EXTJS框架,目前我已经将该控件集成到了我们用的EXTJS框架,该控件的用法和EXT内的控件一样的使用,下面为一点相关代码: getValue: function () { return this.KE.html(this.tid); }, setValue: function (value) { this.value = value; this.KE.html(this.tid, this.value) this.fireEvent('changed', this); }, onDisable: function () { this.KE.toolbar.disable(this.tid, []); this.KE.readonly(this.tid); this.KE.g[this.tid].newTextarea.disabled = true; }, onEnable: function () { this.KE.toolbar.able(this.tid, []); this.KE.readonly(this.tid, false); this.KE.g[this.tid].newTextarea.disabled = false; }, onRender: function (ct) { Ext.form.HtmlEditor.superclass.onRender.call(this, ct); this.tid = new Date().getTime(); this.textarea = Ext.get(document.createElement('textarea')); this.textarea.setWidth(this.width); this.textarea.setHeight(this.height); this.textarea.dom.name = this.tid; this.textarea.dom.id = this.tid; this.textarea.dom.style.visibility = 'hidden'; this.textarea.dom.value = this.value; this.el.dom.appendChild(this.textarea.dom); this.NVKindEditor = new NVKindEditor(); this.KE = this.NVKindEditor.KE; this.KE.init({ scope: this, id: this.textarea.dom.name, afterChange: function (id, scope) { scope.fireEvent('changed', scope); } }); this.KE.create(this.tid); delete ct; }, KindEditor是基于浏览器的所见即所得(WYSWYG)HTML编辑器,主要应用于CMS、论坛、博客等WEB程序里。 但原有的KindEditor控件不完全是面向对象的,通过改进后该控件可以完全面向对象,如下代码: NVKindEditor = new NVKindEditor(); var KE = NVKindEditor.KE; KE.show({ id: 'content1' }); 而上面的KE和KindEditor控件原有的KE是一样的,examples只列出了demo-01和demo-14两个典型的例子,其它的例子也都是一样的。该版是在KindEditor 3.5.4版本上进行修改的,源码在kindeditor-3.5.4-zh_CN.zip里面,详细请参见 http://www.kindsoft.net/
下面是复选框的且带右键菜单的树代码。 HTML code Ext.BLANK_IMAGE_URL = "../resources/images/default/s.gif"; Ext.QuickTips.init(); Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); Ext.onReady(function(){ /************************** 联系人树形菜单**************************/ var contacterTree = new Ext.tree.TreePanel({ id:"treePanelContact", border:false, lines:false, // 去掉树的线 rootVisible:true, autoScroll:true, animate:true, width:200, height : 468, style:"background-color:#FFFFFF;border-color:#0099FF;", // enableDD: false, // 允许树可以拖拽 containerScroll: true, loader: new Ext.tree.TreeLoader({ dataUrl:'/treeOperation.do?action=loadTree' }), root:new Ext.tree.AsyncTreeNode({ id : "treeContact", text: '联系人', draggable:false, expanded: true // 展开根节点下的节点 }), listeners:{ click : function(node){ if(node.id == "treeContact"){ // 如果点击的是根节点,则 GridPanel 显示所有的数据 // store.load({params:{flag:'all'}}); } else if(node.isLeaf() == true){ // 如果点击的是枝节点的话,则根据 ID 查询联系人的信息 // store.load({params:{flag:'contacter',contacterId:node.id}}); }else{ // 如果既不是根节点也不是枝节点,那么点击的就是分组节点, // 则 GridPanel 显示对应分组号的联系人信息 // store.load({params:{flag:'group',groupId:node.id}}); } } } }); // 添加 树的右键菜单 contacterTree.on('contextmenu', menuShow); function menuShow ( node ) { treeRightMenu.show(node.ui.getAnchor()); node.select();//让右击是选中当前节点 }; var treeRightMenu = new Ext.menu.Menu({ id: 'treeMenuContext', items: [ { text: '搜索联系人', icon:"../images/shared/icons/fam/search.gif", handler:function() { Search_Contacter("搜索联系人"); // 具体可以根据自己的需求来写。。 } }, { text: '添加联系人', icon:"../images/shared/icons/fam/add.gif", handler:function() { AddContacter("新增联系人"); // 具体可以根据自己的需求来写。。 } },{ text: '添加分组', icon:"../images/shared/icons/fam/add.gif", handler:function() { AddContacterGroup("新增分组"); // 具体可以根据自己的需求来写。。 } },{ text: "删除", icon: "../images/shared/icons/fam/delete.gif", handler:function() { treeDelContacter(); // 具体可以根据自己的需求来写。。 } } /* ,{ text:"修改", icon: "../images/shared/icons/fam/cog_edit.png", handler:function() { treeEditContacter(); } } */ ] }); // 当选中父节点时,让其子节点相应选中 contacterTree.on('checkchange', function(node, checked) { node.expand(); node.attributes.checked = checked; node.eachChild(function(child) { child.ui.toggleCheck(checked); child.attributes.checked = checked; child.fireEvent('checkchange', child, checked); }); }, contacterTree); // 删除事件 function treeDelContacter(){ // 当右键点击删除时,先判断右键点击的是分组节点还是枝节点 // 通过选择模型来得到右键点击的节点 var selectModel = contacterTree.getSelectionModel(); var node = selectModel.getSelectedNode(); if(node.id == "treeContact"){ // 右键根节点 Ext.MessageBox.alert("提示","根节点是不允许删除的!"); }else if(node.isLeaf() == true){ // 右键 联系人节点 var flag = confirm("您确定要删除名为 :“"+node.text+" ”的联系人信息吗?"); if(flag == true){ location.href="/contacterManage.do?action=delContacters&strContacterId="+node.id+";"; //alert("成功删除名为 :"+node.id+" 的联系人信息!"); } }else{ // 右键 分组节点 var flag = confirm("您确定要删除名为 :“"+node.text+" ”的分组信息吗?"); if(flag == true){ //alert("成功删除名为 :"+node.id+" 的分组信息!"); location.href="/contacterManage.do?action=delContacterGroup&strGroupId="+node.id+";"; } } } // 修改事件 /* function treeEditContacter(){ // 当右键点击删除时,先判断右键点击的是分组节点还是枝节点 // 通过选择模型来得到右键点击的节点 var selectModel = contacterTree.getSelectionModel(); var node = selectModel.getSelectedNode(); if(node.id == "treeContact"){ // 右键根节点 Ext.MessageBox.alert("提示","根节点是不允许修改的!"); }else if(node.isLeaf() == true){ // 右键 联系人节点 }else{ // 右键 分组节点 } } */ });

87,937

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧