view sourceprint?
1.var setting = {
2.data: {
3.key: {
4.title: "s"//这里的s表示节点内的s属性
5.},
这里的key内的title默认指向的就是name属性,或者为空,为空的时候也会默认为name属性。
针对这位朋友的问题,其实方法很多:
1、在后台构造属性
在ajax页面内从数据库拿到数据list过后通过new的形式给最终返回的json对象构造一个属性t出来。然后修改setting内key的title指向属性值为t即可。
返回的json对象数据为:
view sourceprint?
1.var zNodes =[
2.{ id:1, pId:0, name:"节点搜索演示 1", t:"节点提示信息1", open:true},
3.{ id:11, pId:1, name:"关键字可以是名字", t:"节点提示信息2"},
4.{ id:12, pId:1, name:"关键字可以是level", t:"节点提示信息3"}
5.]
修改setting内对应的key值
view sourceprint?
1.var setting = {
2.data: {
3.key: {
4.title: "t"//这里的s表示节点内的s属性
5.},
2、动态修改树节点的属性
当前台给zTree树对象赋值结束后获取所有树节点,然后逐个更新树节点的属性值,示例代码如下所示:
view sourceprint?
01.$(document).ready(function () {
02.$.fn.zTree.init($("#treeDemo"), setting, zNodes)
03.//获取树对象
04.var treeObj = $.fn.zTree.getZTreeObj("treeDemo")
05.//拿到所有树节点
06.var nodes = treeObj.getNodes()
07.//for循环逐个修改树节点属性
08.for(var i = 0i<nodes.lengthi++)
09.{
10.nodes[i].t = "可以自定义排序"
11.//更新节点
12.treeObj.updataNode(nodes[i])
13.}
14.})
当前如果只是修改部分节点可以在for内加以控制,如果是只更新指定节点可以通过getNodeByParam("属性名称","值",父节点对象)找到指定对象,形如:
view sourceprint?
1.//给节点追加属性
2.var treeObj = $.fn.zTree.getZTreeObj("treeDemo")
3.var node = treeObj.getNodeByParam("id", 1, null)
4.node.s = "可以自定义排序"
5.treeObj.updateNode(node)
自定义控件中自定义属性的定义和使用方式。第一步当然是自定义类EditTextNoEmoji继承EditText,同时重写三个构造方法。这里需要注意的是,三个构造方法中必须分别实现父类对应的构造方法,就是三个super();而不能出现调用当前类的不同参数的另一个构造方法的形式,就是不能出现this()。否则的话,这个控件在实际使用时是获得不到焦点的,似乎是由于EditText继承TextView的原因,具体原因待查。
谈谈这三个构造方法的区别,一参的构造EditTextNoEmoji(Context context),是在使用的java文件中动态生成时调用,两参的构造EditTextNoEmoji(Context context, AttributeSet attrs),是在使用的xml文件中静态生成时调用,三参的构造基本不会使用,暂且不讨论。而两参构造中的第二个参数attrs,正是我们要自定义的属性,所以在该方法中调用setAttrs(context, attrs)设置xml文件中使用到的自定义属性。
第二步需要声明自定义属性控制是否禁止输入表情,同时为了方便该控件在使用时的xml布局中配置该属性,要先在res/values/styles.xml中自定义属性名称。自定义属性的styleable名称必须是和自定义控件的类名保持一致的,在这个样式下可以添加任意的自定义属性,如下代码,添加了一个boolean类型的属性,名称为canInputEmoji。另外可以添加的属性类型包括 color,boolean,dimension,enum,flag,float,fraction,integer,reference,string等十种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)