我有这个对象:
object = {
key:["1","2","3","4","5"],
key2:["5","7","8","9"]
}
Run Code Online (Sandbox Code Playgroud)
如何删除对象键以及如何删除对象键值?
在ExtJS 3.3.1中,我尝试将comboBox设置为多选,但它不起作用.
请帮忙.
var mArray = new Array("ALL", "AAA", "BBB");
var mCombo = new Ext.form.ComboBox({ id: 'ID', fieldLabel: 'ID',
triggerAction: 'all',
height: 100, width: 163,
multiSelect: true,
store: mArray
});
Ext.getCmp('mCombo').setValue("ALL");
Run Code Online (Sandbox Code Playgroud) 假设我有一个包含字段的表
Rank,Id和Name
单击此按钮时Rank,表格将使用此代码按升序排序
$(function() {
$("#rank").click(function() {
var rows = $("#rank_table tbody tr").get();
rows.sort(sortTable);
$.each(rows, function(index, row) {
$("#rank_table").children("tbody").append(row);
});
});
});
function sortTable(a, b) {
var A = parseInt($(a).children('td').eq(0).text());
var B = parseInt($(b).children('td').eq(0).text());
if (A < B) return -1;
if (A > B) return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Rank和Id分别是id rank和整数st_id.所以,我想要实现的是当我点击Rank字段一次时,表格按升序排序,再次点击它按降序对表格进行排序.
我想为fields-都这样做rank和Id.对于降序,我是否需要使用不同的功能而不是升序此升序功能.
我怎样才能使用jQuery实现这一点sort() function(not plugins)呢?
这是html
<!Doctype html>
<html>
<head>
<style>
#thead {
cursor: pointer; …Run Code Online (Sandbox Code Playgroud) 我加载我的商店如下:
store.load({
params: {
paramMap
},
callback: function(records, options, success) {
if (success) {
var form = formPanel.getForm();
var jsonStr = Ext.JSON.encode(records[0].raw);
var jsonObj = Ext.JSON.decode(jsonStr);
form.loadRecord(jsonObj);
}
}
});
Run Code Online (Sandbox Code Playgroud)
问题是我只希望在第一次加载商店时回拨.我想在之后删除它,以便当我重新加载或再次加载存储时,它不会再次调用此回调.
任何想法,我尝试在选项配置中获取回调但这似乎不起作用.
使用Extjs 4.2
我已经阅读了许多文档,谷歌,论坛试图了解组件如何加载以及放置它们的位置,如商店,模型等,但仍然困惑.
这是我试图开始工作的一个例子
应用说明
主菜单包含联系人,项目,人员等等,应用程序首先加载显示静态非数据驱动,然后使用点击联系人显示带有联系人列表的网格.然后,用户单击联系人行,并显示弹出编辑视图.
在contactitview中,联系人被加载到表单中,此外表单还有一个加载ContactTypes商店的组合框.ContactType应设置为该联系人记录的contacttype值.
这是一个常见的方法,考虑到这是一个大型应用程序,我只想在需要时加载数据,即显示视图.
以下是我的一些困惑
您可以在应用程序配置中定义所有控制器,商店,模型,视图,但无论您正在查看哪个页面,都会加载所有内容.此外,如果您的商店中有autoLoad:true,那么即使您没有查看该特定视图,也会对数据库进行所有商店的调用.
在控制器的stores或models属性中指定商店或模型时,具体到底是做什么的?它只是让你轻松引用商店而不是实际创建它或创建它,还是只是设置getter和setter函数以方便使用.例如,如果我在控制器的store属性中指定了一个商店,并且autoLoad为true,则加载所有数据而不需要执行任何其他操作.但我真正想要的是,只有当我点击"联系人"并且显示列表视图时才会加载该商店.所以我设置autoLoad:false并在我的列表函数中手动获取商店使用this.getStore('Contacts').这很好用,但是使用store和models控件的数组属性的目的是什么.我在调试器中看到,如果我不使用存储/模型属性,则会对这些js文件进行get请求.
对不起,我知道这很多,但对我来说很困惑,并且已经挣扎了一段时间.
最后,只有当您通过设置autoLoad:false并手动加载来单击"联系人"按钮时,才会加载"联系人"网格.现在,当用户单击编辑时,记录加载正常,但如何加载组合框然后选择正确的值.我认为我的部分问题是了解商店模型如何加载和实例化.在我的组合框存储属性中,我已将ContactType指定为存储,但我得到错误存储未定义,因此未加载js文件或未实例化存储.
到目前为止,这是我的代码.
应用代码
Ext.Loader.setConfig({
enabled: true,
paths: {
'Ext.ux': "lib/extux",
'Wakanda': "lib/extux/wakanda"
}
});
Ext.application({
name: 'SimplyFundraising',
autoCreateViewport: true,
requires: ['Ext.ux.Router', // Require the UX
'Wakanda.model'
],
controllers: ['Contacts'],
});
Run Code Online (Sandbox Code Playgroud)
联系控制器
Ext.define('SimplyFundraising.controller.Contacts', {
extend: 'Ext.app.Controller',
views: ['contacts.List', 'contacts.Edit'],
init: function() {
this.control({
'contactslist': {
itemdblclick: this.editContact,
removeitem: this.removeContact
},
'contactslist > toolbar > button[action=create]': {
click: this.onCreateContact
},
// 'contactsadd button[action=save]': {
// click: this.doCreateContact
// …Run Code Online (Sandbox Code Playgroud) 我有一个控制器,我想将一个简单的字符串值传递给下一个View.
为此,我正在创建这样的视图.
var nextView = Ext.create('MyApp.view.NextView', {
content: 'value'
});
Ext.Viewport.add(nextView);
Ext.Viewport.animateActiveItem(nextView, {
type: 'slide',
direction: 'left'
});
Run Code Online (Sandbox Code Playgroud)
在NextView上,我有一个标签,我想HTML将标签的属性设置为我从控制器传递的值.即.value.
我的NextView看起来像这样.
Ext.define('MyApp.view.NextView', {
extend: 'Ext.form.Panel',
config: {
content: 'null',
items: [{
xtype: 'label',
html: 'value'
}]
}
});
Run Code Online (Sandbox Code Playgroud)
我不知道如何从这里开始.我不能将NextView作为表单.我只需要在这种情况下传递一个字符串值.
实现这一目标的最佳方法是什么?
在问这个问题之前,我用谷歌搜索了很多,但找不到适合我的解决方案。
在Xamarin.Forms我有一个byte[]数组,我想将该byte[]数组转换为Image. 我怎样才能做到这一点,这是我尝试过的:
在前端(XAML):
<StackLayout BackgroundColor="Olive" x:Name="imagePanel">
<Image x:Name="PdfImage" Aspect="AspectFill" IsVisible="true"/>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
在代码隐藏(C#)中:
byte[] imageAsBytes = Constant.jsonPDF;
var stream1 = new MemoryStream(imageAsBytes);
PdfImage.Source = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));
imagePanel.Children.Add(PdfImage);
Run Code Online (Sandbox Code Playgroud)
但我的问题是图像没有显示。
谁能告诉我我做错了什么。任何帮助将不胜感激。
我有以下事件:
Ext.onReady(function() {
Ext.select('.gallery-item img').on('click', function(e) {
Ext.select('.gallery-item').removeClass('gallery-item-selected');
Ext.get(e.target).parent().addClass('gallery-item-selected');
});
});
Run Code Online (Sandbox Code Playgroud)
页面加载时工作正常.
但是我动态地创建了类gallery-item的其他div,其中包含一个图像.创建新项目后,单击事件将停止工作.
我怎么能update这样绑定?
谢谢.
我有一个Ext.tree.Panel有TreeStore.此树位于选项卡中.问题是当我的应用程序加载应用程序中使用的所有树时加载它们的数据,即使存储已打开autoLoad: false.
我怎么能防止在树上自动加载?
Ext.define('...', {
extend: 'Ext.container.Container',
alias: 'widget.listcontainer',
layout: {
type: 'vbox',
align: 'stretch'
},
items: [{
xtype: 'container',
html: "...",
border: 0
}, {
xtype: '...',
flex: 1,
bodyPadding: 5,
margin: '9 0 0 0'
}]
});
Ext.define('...', {
extend: 'Ext.data.TreeStore',
model: '...',
proxy: {
type: 'ajax',
reader: {
type: 'json',
root: 'data'
},
api: {
read: 'some url'
}
}
});
Ext.define('...', {
extend: 'Ext.tree.Panel',
alias: 'widget....',
id: '...',
title: '...', …Run Code Online (Sandbox Code Playgroud) 我想使用JavaScript验证单元格编号.
这是我的代码.
if(number.value == "") {
window.alert("Error: Cell number must not be null.");
number.focus();
return false;
}
if(number.length != 10) {
window.alert("Phone number must be 10 digits.");
number.focus();
return false;
}
Run Code Online (Sandbox Code Playgroud)
这是问题,当我提交表格时没有输入电话号码,它显示错误单元格编号不能为空.它工作正常.
当我提交小区号码小于10位的表格时,显示的电话号码必须是10位数.这也很好.
问题是当我提交10位数的表格时,它也显示错误电话号码必须是10位数.
请帮我.谢谢.
并且还需要仅针对单元格编号的数字的验证代码.