我有个grid需要显示 id 评论主题 评论人 是否匿名 时间 评论人项根据是否匿名 显示匿名或者评论人名字 如果匿名,评论人项显示匿名,否则显示评论人名称. 这个肯定是渲染前就要处理,但是怎么处理,求高手指点.--------------------------------------------------------------------------
var cm = new Ext.grid.ColumnModel([sm,
{ header: "状态", dataIndex: "IsRead", width: 30, tooltip: "已读/未读", sortable: true, renderer: formatIsRead },
{ header: "评论主题", dataIndex: "EvaTitle", tooltip: "评论主题", sortable: true },
{ header: "评论人", dataIndex: "SelfUserName", tooltip: "用户名/英文名", sortable: true },
{ header: "评论状态", dataIndex: "PostLev", tooltip: "评论状态", sortable: true, renderer: formatPostLev },
{ header: "评论时间", dataIndex: "PostTime", tooltip: "评论时间", sortable: true}]);
var cm = new Ext.grid.ColumnModel([sm,
{ header: "状态", dataIndex: "IsRead", width: 30, tooltip: "已读/未读", sortable: true, renderer: formatIsRead },
{ header: "评论主题", dataIndex: "EvaTitle", tooltip: "评论主题", sortable: true },
{ header: "评论人", dataIndex: "SelfUserName", tooltip: "用户名/英文名", sortable: true },
{ header: "评论状态", dataIndex: "PostLev", tooltip: "评论状态", sortable: true, renderer: formatPostLev },
{ header: "评论时间", dataIndex: "PostTime", tooltip: "评论时间", sortable: true}]);
解决方案 »
- Jquery Ajax问题(高分)
- 怎么利用jsp中的request对象将checkbox的value值导出?
- 为什么iis不提示"已限制此网页运行可以访问计算机的脚本或ActiveX控件..."
- 哪位 JS 达人 知道如何给 动态添加的控件增加属性 谢谢
- 项目合理性问题
- ????求一个正则表达式的问题???
- 网页内嵌有<object></object>,我如何才能得到网页内有几个object和它们的属性?
- 这个正则表达式怎么写?关于实数的!!
- 求教 : 用 javascript 可以写 xml 文件吗 ?
- 用当前页open一个选择窗口,怎样把选择窗口里取到的值置回到当前页?
- 谁能解决这个问题:控制图片左右滚动+图片任意拖动
- PHP中session的使用
{ header: "评论人", dataIndex: "SelfUserName", tooltip: "用户名/英文名", sortable: true }
写成
{ header: "评论人", dataIndex: "SelfUserName", tooltip: "用户名/英文名", sortable: true,
renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){
if(record.get("")==“匿名”/*这里是否匿名列对应的dataIndex是什么就写什么*/)
return "匿名"
}else{
return value;//否则返回评论人名称
}
}
上面的问题解决了.谢谢大哥.但是又出了一个问题 var tbar = new Ext.Toolbar(["", "-", "", "分类查看:", comboBox, "", "-", "",
{ text: "删除评论", iconCls: "deleteicon", tooltip: "删除评论", handler: evaDeleteFn }, "", "-", "",
{ text: "查看评论", iconCls: "editicon", tooltip: "浏览评论内容", handler: readEevFn }, "", "-", "",
{ text: "刷新", iconCls: "refreshicon", tooltip: "刷新信息", handler: refreshFn }, "", "-", "", "<font color=red>双击查看详细信息</font>"]);
var rightMenu = new Ext.menu.Menu({ items: [
{ text: '删除评论', iconCls: 'deleteicon', handler: evaDeleteFn },
{ text: '查看评论', iconCls: 'editicon', handler: readEevFn },
{ text: '刷新', iconCls: 'refreshicon', handler: refreshFn }
]
}); function readEevFn() {
var row = EvaGrid.getSelectionModel().getSelections();
if (row.length == 0) { Ext.Msg.alert("提示", "请选择一行"); }
else if (row.length > 1) { Ext.Msg.alert("提示", "只能选择一行"); }
else if (row.length == 1) { alert(row[0][0]); }
}这是我写的添加一个Toolbar上面有个按钮查看当前选中评论
下面grid右键可以查看当前选中评论这是我声明的grid
var EvaGrid = new Ext.grid.GridPanel({
store: evaStore, sm: sm, cm: cm, loadMask: true, autoScroll: true, border: false, tbar: tbar, bbar: bbar,
viewConfig: { columnsText: "显示/隐藏列", sortAscText: "正序排列", sortDescText: "倒序排列", forceFit: true },
listeners: { "rowdblclick": function(grid, rowIndex, e) { ReadEva(grid.getStore().getAt(rowIndex).data); },
'contextmenu': function(e) { e.stopEvent(); },
'rowcontextmenu': function(grid, rowIndex, e) { e.stopEvent(); rightMenu.showAt(e.getXY()); }
}
});给grid声明了一个双击事件,双击显示当前点击评论,这个都可以.但是右键和toolbar按钮查看就不行了,
不知道该传个什么参数进来.
var tbar = new Ext.Toolbar(["", "-", "", "分类查看:", comboBox, "", "-", "",
{ text: "删除评论", iconCls: "deleteicon", tooltip: "删除评论", handler: evaDeleteFn }, "", "-", "",
{ text: "查看评论", iconCls: "editicon", tooltip: "浏览评论内容", handler: readEevFn }, "", "-", "",
{ text: "刷新", iconCls: "refreshicon", tooltip: "刷新信息", handler: refreshFn }, "", "-", "", "<font color=red>双击查看详细信息</font>"]);
var rightMenu = new Ext.menu.Menu({ items: [
{ text: '删除评论', iconCls: 'deleteicon', handler: evaDeleteFn },
{ text: '查看评论', iconCls: 'editicon', handler: readEevFn },
{ text: '刷新', iconCls: 'refreshicon', handler: refreshFn }
]
});以上这些
handler:evaDeleteFn ,handler:readEevFn ,handler:refreshFn
可以写成handler:function(){
var row = EvaGrid.getSelectionModel().getSelections();
if (row.length == 0) { Ext.Msg.alert("提示", "请选择一行"); }
else if (row.length > 1) { Ext.Msg.alert("提示", "只能选择一行"); }
else if (row.length == 1) { alert(row[0][0]); }
}
或者是tbar.items.item(0).setHandler(refreshFn);
不是这个问题,是readEevFn 这个方法,
我是点击查看评论,出现一个window,上面是评论消息和内容.
我写了个readEva(recode)方法用来显示内容,
上面的 alert(row[0][0]);这里应该是调用这个readEva的方法.
但是我不知道传什么参数?这些内置的参数弄不清楚.
readEva = function(record) {
evaChangeReadState(record.EvaID);
var form = new Ext.form.FormPanel({
frame: true,
defaultType: "textfield",
defaults: { readOnly: true },
items: [{
xtype: "textfield",
fieldLabel: "标题",
name: "textvalue",
width: 400, value: record.EvaTitle
}, {
xtype: "textarea",
fieldLabel: "Text",
name: "内容", value: record.PostContent,
height: 230,
width: 400
}
]
});
var win = new Ext.Window({
title: "评论查看",
height: 400,
width: 600,
bodyStyle: "padding:5 5 5 5",
closeAction: "hide",
resizable: true,
modal: true,
items: [form],
buttons: [{ text: "关闭", handler: function() { win.hide(); } }]
});
win.show();
}
如果是这样的话,就不用传之过去了。
根据列模型的getSelected()获取选中的一行
然后formpanel.form.loadRecord(record)就可以load选中的一行到formpanel中了。
(注意,record的name属性值要和form中的字段对应一样)