我需要一个函数来添加/删除ExtJS 4网格中的列.网格是用Extjs 4编写的.在我谷歌之后,我发现了以下代码.
function reconfigure(store, columns) {
// debugger;
var me = grid;
if (me.lockable) {
me.reconfigureLockable(store, columns);
return;
}
if (columns) {
me.headerCt.removeAll();
me.headerCt.add(columns);
}
if (store) {
store = Ext.StoreManager.lookup(store);
me.bindStore(store);
// me.getView().refresh();
} else {
me.getView().refresh();
}
}
Run Code Online (Sandbox Code Playgroud)
我调用此函数的代码
var store = grid.getStore();
reconfigure(store, fields);
Run Code Online (Sandbox Code Playgroud)
它取代了标题行,但不会刷新数据.我正在使用ExtJs 4.0
我正在处理一个大型的csv文件,我发现这篇关于批量导入的文章:http://naleid.com/blog/2009/10/01/batch-import-performance-with-grails-and-mysql/.我试图做同样的事,但似乎没有效果.
每次刷新后,实例是否可以在数据库中查看?因为当我尝试查询'SELECT COUNT(*)FROM TABLE1'时,现在有0或所有entites,所以它看起来像是一次提交所有实例.
然后我还注意到,当第一次导入到空白表时,导入工作很快,但是当表已满并且实体应该更新或保存为新实体时,整个过程非常慢.这主要是因为内存没有被清理,减少到1MB或更少,应用程序卡住了.那是因为没有刷新会话?
我的导入代码在这里:
public void saveAll(List<MedicalInstrument> listMedicalInstruments) {
log.info("start saving")
for (int i = 0; i < listMedicalInstruments.size() - 1; i++) {
def medicalInstrument = listMedicalInstruments.get(i)
def persistedMedicalInstrument = MedicalInstrument.findByCode(medicalInstrument.code)
if (persistedMedicalInstrument) {
persistedMedicalInstrument.properties = medicalInstrument.properties
persistedMedicalInstrument.save()
} else {
medicalInstrument.save()
}
if ((i + 1) % 100 == 0) {
cleanUpGorm()
if ((i + 1) % 1000 == 0) {
log.info("saved ${i} entities")
}
}
}
cleanUpGorm()
}
protected void cleanUpGorm() { …Run Code Online (Sandbox Code Playgroud) 我正在尝试加载一个JSON数据,该数据由AJAX请求回复到网格.我的店铺定义:
Ext.define('Report.store.CustomerDataStore', {
extend: 'Ext.data.Store',
requires: [
'Report.model.Customer'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
storeId: 'CustomerDataStore',
model: 'Report.model.Customer',
proxy: {
type: 'ajax',
url: '',
reader: {
type: 'json',
root: 'data',
record: 'fields'
}
}
}, cfg)]);
}
});
Run Code Online (Sandbox Code Playgroud)
我的应用程序中有一个按钮,定义如下:
xtype: 'button',
handler: function(button, event) {
var queryform = this.up('form').getForm();
var me = this;
if(queryform.isValid())
{
Ext.Ajax.request({
url: 'customers/', // where you wanna post
success: function(response) {
var mystore = Ext.data.StoreManager.lookup('CustomerDataStore'); …Run Code Online (Sandbox Code Playgroud) 我有一些这样定义的变量:
DateTime? tempDateTime;
Run Code Online (Sandbox Code Playgroud)
而且我有这样的查询:
var recordWithMinDatetime =
locatedContracts.Where(t => t.OriginalDate.HasValue)
.OrderBy(t => t.OriginalDate.Value)
.FirstOrDefault();
if (recordWithMinDatetime != null)
tempDateTime = recordWithMinDatetime.OriginalDate.Value;
Run Code Online (Sandbox Code Playgroud)
但是IDE当我将鼠标悬停在上一个任务上时,它说“ Possible InvalidOperationException”
我也已经ReSharper安装了,所以不确定它是否来自R#或VS IDE,但是我仍然需要担心这一点,但是我不明白是什么原因,我做错了或不安全的代码,它给了我这个提示?
在满足其条件后我不需要if.有没有什么办法可以修改我的代码,以便它在传递之后不必检查它?我的数据库中有很多表,我想知道代码是否是最佳的.
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM STACKOVERFLOW.information_schema.tables ORDER BY TABLE_NAME");
while (rs.next()) {
String name = rs.getString("TABLE_NAME");
ExtractFrom.addItem(name);
if (name.toLowerCase().equals("stack")) pvIsPresent=true;
}
if (pvIsPresent)
ExtractFrom.setSelectedItem("stack");
Run Code Online (Sandbox Code Playgroud) 我试过像这样制作一个extjs全局变量类:
Ext.define('ccc.global.GlobalVariables', {
singleton: true,
username: 'hi user',
password: '',
clientID: '',
token: ''
});
Run Code Online (Sandbox Code Playgroud)
然后在控制器中我尝试更改变量,如下所示:
ccc.global.GlobalVariables.username = loginData.username;
Run Code Online (Sandbox Code Playgroud)
现在我试图在不同的模型代理中访问这些变量,并且它不断返回原始值'hi user'.
proxy: {
type: 'ajax',
extraParams: {
'username': ccc.global.GlobalVariables.username
},
Run Code Online (Sandbox Code Playgroud)
有谁看到我做错了什么?
我试图Authorization: 'Bearer <TOKEN>'通过参数传入标题到我的store.load(),它不起作用.
如果我这样做,它的工作原理如下:
Ext.define('ExtApplication4.model.MenuListModel', {
extend: 'ExtApplication4.model.Base',
requires: [
'ExtApplication4.model.Base'
],
fields: [
{
name: 'text',
type: 'string'
},
{
name: 'iconCls',
type: 'string'
},
{
name: 'className',
type: 'string'
}
],
proxy: {
type: 'ajax',
url: 'http://xxxxx/xxx/api/user/getusermenus/',
reader: {
type: 'json',
rootProperty: 'data'
},
headers: {
Authorization: 'Bearer ' + Ext.decode(Ext.util.Cookies.get('token'))
}
}
});
Run Code Online (Sandbox Code Playgroud)
问题是我想填充我的授权标题store.load().我花了好几个小时试图找到这样做的语法.我尝试标题的所有内容都没有添加.
有人能告诉我怎么做吗?
这是我试过的:
targetStore.load({
params: {
username: uname
},
//headers: {
// Authorization: 'Bearer ' + token;
//}, …Run Code Online (Sandbox Code Playgroud) 我对CSS不熟悉,我只需要定位article元素内的header元素。我知道有些人#,.或,。
article header
article, header
article.header
article#header
Run Code Online (Sandbox Code Playgroud)
而且我也认为其他人。
有人可以帮我吗?