jQuery MiniUI

标题: treeselect 动态联动梆定 [打印本页]

作者: 303974838    时间: 2014-8-15 15:20:06     标题: treeselect 动态联动梆定

treeselect 联动效果 怎么实现了?

   在没有任何值的情况下是可以的

如果有值了,在修改的时候 怎么搞???

    比哪我选择了部门,也选择人员信息,保存到了数据库中

修改的时候 ,  部门是没有问题的,因为不要带条件加载数据
    那人员是有一个过滤条件,才能把列表拉出来的。


   treeselect 是否有一个在设完值后的事件?这样就可以去获取人员列表了。。

onvaluechanged 只适合在选择的时候 变。。

作者: felt    时间: 2014-8-15 16:11:22

参考单元格联动编辑示例
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
作者: 303974838    时间: 2014-8-15 16:32:36

felt 发表于 2014-8-15 16:11
参考单元格联动编辑示例
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html

其实我要的是那个事件叫什么 你提供的这个例子是列表 oncellbeginedit 有这个事件,而treeselect没有这个事件的。。
你们的API上面也没有相应的说明

   <input id="DirectorDepartmentId" name="DirectorDepartmentId"  class="mini-treeselect SelectDept" multiselect="false"
                                    textfield="name" valuefield="id" checkrecursive="true"  data-options="{Relevance:'DirectorId'}" parentField="pid"
                                    showfoldercheckbox="false" expandonload="false" showclose="true" oncloseclick="onTreeSelectClick" oncellbeginedit="teset"
                                    popupwidth="200" onvaluechanged="DeptChanged" />
作者: felt    时间: 2014-8-15 16:38:11

303974838 发表于 2014-8-15 16:32
其实我要的是那个事件叫什么 你提供的这个例子是列表 oncellbeginedit 有这个事件,而treeselect没有这个 ...

看错控件了
是2个treeselect联动吗?
那和combobox联动差不多,第一个控件值改变的时候去更新第二个控件的数据
http://www.miniui.com/demo/#src=combobox/linkage-combo.html

作者: 303974838    时间: 2014-8-15 16:45:40

felt 发表于 2014-8-15 16:38
看错控件了
是2个treeselect联动吗?
那和combobox联动差不多,第一个控件值改变的时候去更新第二个控件 ...

这个不行呀。。。
用onvaluechanged 事件是不成的。只有值改变了,能变成功。   
因为我的列表值是动态加载的。

加载数据用这种方式, 部门也不给我梆对。非要一个一个的SetValue 才出来
//给表单界面设值
function SetFormData(data) {
    form = new mini.Form(RequestInfo.FromId);
    form.setData(data);


//   mini.get("DirectorDepartmentId").setValue(PageData.DirectorDepartmentId)

}



作者: 303974838    时间: 2014-8-15 16:47:02

303974838 发表于 2014-8-15 16:45
这个不行呀。。。
用onvaluechanged 事件是不成的。只有值改变了,能变成功。   
因为我的列表值是动态加 ...

我需要一个控件值梆定后的事件。。
   只要告诉我值梆定后的事件,,一切都可以搞定了。。。
作者: felt    时间: 2014-8-15 16:54:40

303974838 发表于 2014-8-15 16:47
我需要一个控件值梆定后的事件。。
   只要告诉我值梆定后的事件,,一切都可以搞定了。。。 ...

参考试用包里面demo/commonLibs/employeeWindow.html那个例子
里面有个表单赋值2个combobox联动的

作者: 303974838    时间: 2014-8-15 17:02:27

felt 发表于 2014-8-15 16:54
参考试用包里面demo/commonLibs/employeeWindow.html那个例子
里面有个表单赋值2个combobox联动的
...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>ComboBox 联动下拉选择</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /><link href="../demo.css" rel="stylesheet" type="text/css" />

   
    <script src="../../scripts/boot.js" type="text/javascript"></script>
   
   
</head>
<body>
    <h1>ComboBox 联动下拉选择 </h1>
   
    <span>部门</span><br />
    <input id="deptCombo" class="mini-combobox" style="width:150px;" textField="name" valueField="id"
        onvaluechanged="onDeptChanged" url="../data/AjaxService.aspx?method=GetDepartments"
        showNullItem="true"
         />         
    <br /><br />

    <span>职位</span><br />
    <input id="positionCombo" class="mini-combobox" style="width:150px;" textField="name" valueField="id" />         

    <script type="text/javascript">
        mini.parse();
      
        var deptCombo = mini.get("deptCombo");
        var positionCombo = mini.get("positionCombo");
        
      //加载值后,第二格就显示不对了。
      $(function ()
        {
            mini.get("deptCombo").setValue("cw")
              mini.get("positionCombo").setValue("cw2")
      })
      
        function onDeptChanged(e) {
            var id = deptCombo.getValue();

            positionCombo.setValue("");
            
            var url = "../data/AjaxService.aspx?method=GetPositionsByDepartmenId&id=" + id
            positionCombo.setUrl(url);
            
            positionCombo.select(0);
        }

    </script>

    <div class="description">
        <h3>Description</h3>
        <p>选择"国家"ComboBox后,将动态调整"城市"ComboBox可选择的下拉框列表数据。     
        </p>
    </div>
</body>
</html>


大哥,这样就不能正常显示 第二个了, ,第二个已经有值了。。。
作者: 303974838    时间: 2014-8-15 17:04:19

303974838 发表于 2014-8-15 17:02
ComboBox 联动下拉选择
   

你们的这些例子,我都能背了。。
求大神不要发例子,来点实际的,不要忽悠小弟,小弟是在线等的。
作者: felt    时间: 2014-8-15 17:07:10

本帖最后由 felt 于 2014-8-15 17:11 编辑
303974838 发表于 2014-8-15 17:02
ComboBox 联动下拉选择
   

mini.get("deptCombo").setValue("cw")
mini.get("deptCombo").doValueChanged()      //js去触发
setTimeout(function(){mini.get("positionCombo").setValue("cw2")},100)

js赋值不会触发valuechanged事件,赋值后手动去触发
作者: 303974838    时间: 2014-8-15 18:14:11

felt 发表于 2014-8-15 17:07
mini.get("deptCombo").setValue("cw")
mini.get("deptCombo").doValueChanged()      //js去触发
setTime ...

你这样怎么行了? 那代码量和易用性也太差了。

你们难道没有试过联动后的效果吗???

   联动后, 在编辑怎么处理???

   这种地方,我感觉 你们要改进一下类。。

  而且你们这个控件好像不能集到form 这样直接操作 不属于Form基础控件吗?
   form = new mini.Form(RequestInfo.FromId);
    form.setData(data);
  
一定要mini.get("").setValue("")  才可以???


我提的内容, 我在手动一个一个赋值完成后,在重新指定路径是可以达到效果的,只是有点戳而已。

作者: 303974838    时间: 2014-8-15 18:16:25

felt 发表于 2014-8-15 17:07
mini.get("deptCombo").setValue("cw")
mini.get("deptCombo").doValueChanged()      //js去触发
setTime ...

对了,版主,你的回答不是我想要的答案 喔, 也没有回答我的问题,你运行代码, 你应该明白我想要干什么。。
   我是二个默认值 设置

   第一个部门是没有问题的
   第二个角色 就不能默认值

也是我们在项目中会应用最多的, 编辑效果。
作者: 303974838    时间: 2014-8-15 18:31:50

felt 发表于 2014-8-15 17:07
mini.get("deptCombo").setValue("cw")
mini.get("deptCombo").doValueChanged()      //js去触发
setTime ...

       //界面数据加载完成后的方法
        function InitDataed() {
            //控件无法自动加载, 所以手动指定值
            mini.get("DirectorDepartmentId").setValue(PageData.DirectorDepartmentId);

            //虚拟选部门值改变事件
            var e = {};
            e.sender = { Relevance: "DirectorId" };
            e.value = PageData.DirectorDepartmentId;
            DeptChanged(e);
        }

想了很久,用这种方法去做,,虽然效果可以达到, 但是 感觉 有点。。。。。
有没有更好的方式了???
作者: felt    时间: 2014-8-17 11:00:39

303974838 发表于 2014-8-15 18:31
//界面数据加载完成后的方法
        function InitDataed() {
            //控件无法自动加载, ...

你联动的第二个combobox本身是没有数据的,他的数据是在第一个combobox值改变的时候才加载到,你用form加载数据本身这个赋值是同步的
只能像我们例子这样做




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2