1. 程式人生 > >[asp.net] easyui 複選tree預設選中第一個節點

[asp.net] easyui 複選tree預設選中第一個節點

為了實現頁面載入成功的時候選中全部的引數,如溫度、溼度等,需要選中對應的複選框才能觸發echarts的資料請求和載入顯示事件,所以,需要選中第一個節點,即父節點,實現引數的全部選中。效果如下圖所示。

實現程式碼如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="pragma" content="no-cache" />
    <script src="/Scripts/loading.js" type="text/javascript"></script>
    <link href="/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="/EasyUI/themes/gray/easyui.css" rel="stylesheet" type="text/css" />
    <script src="/EasyUI/jquery.min.js" type="text/javascript"></script>
    <script src="/EasyUI/jquery.easyui.min.js" type="text/javascript"></script>
    <script src="/Scripts/distinguishBrowser.js" type="text/javascript"></script>
    <script src="../EasyUI/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
    <!--單檔案匯入-->
    <script src="/Echarts/echarts-all.js" type="text/javascript"></script>
    <script type="text/javascript">
        //樹形選單的點選事件
        $(function () {
            $('#dd1').datebox('setValue', '2018-7-1');
            $('#dd2').datebox('setValue', '2018-12-1');
            $("#tt").tree({
                onLoadSuccess: function (node, data) {
                    if (data.length > 0) {
                        //找到第一個元素
                        var n = $('#tt').tree('find', data[0].id);
                        //呼叫選中事件
                        $('#tt').tree('check', n.target);
                    }
                },
                onCheck: function () {
                    var nodes = $('#tt').tree('getChecked');
                    var data1 = '';
                    var data2 = [];
                    for (var i = 0; i < nodes.length; i++) {
                        if (nodes[i].id > 0) {
                            if (data1 != '') data1 = data1 + ',';
                            data1 = data1 + nodes[i].text;
                            data2.push(nodes[i].text);
                        }
                    }

                    //讀取測點資料
                    $.ajax({
                        url: '/CD/CDHandler.ashx?action=GetCDInfo',
                        type: 'POST',
                        data: {
                            JZId: $('#tt').tree('getRoot').text,
                            CDName: data1,
                            Start: $('#dd1').datebox('getValue'),
                            End: $('#dd2').datebox('getValue')
                        },
                        beforeSend: function () {
                            $.messager.progress({
                                text: '正在處理中...'
                            });
                        },
                        success: function (data) {
                            $.messager.progress('close');
                            data = eval('(' + data + ')');

                            //更新echart資料
                            var myChart = echarts.init(document.getElementById('myechart'));
                            //準備資料
                            option = {
                                tooltip: {
                                    trigger: 'axis'
                                },
                                legend: {
                                    data: data2
                                },
                                xAxis: [
                                {
                                    type: 'category',
                                    boundaryGap: false,
                                    data: data.x
                                }
                                ],
                                yAxis: [
                                    {
                                        type: 'value'
                                    }
                                ],
                                series: data.series
                            };

                            //載入資料
                            myChart.setOption(option);
                        }
                    });
                }
            });
        });
    </script>
</head>
<body>
    <table style="width:100%">
        <tr>
            <td>
                <ul id="tt" class="easyui-tree" url="/CD/CDHandler.ashx?action=GetAllCDInfo" style="width: 180px;" checkbox="true">
                </ul>
            </td>
            <td>
                開始時間:
                <input id="dd1" type="text" class="easyui-datebox" />
                結束時間:
                <input id="dd2" type="text" class="easyui-datebox" />
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <!--Echart圖表區域-->
                <div id="myechart" style="height: 300px; width: 100%; position: relative; margin: 0 auto;">
                </div>
            </td>
        </tr>
    </table>
</body>
</html>

注意,這裡我們首先利用find方法根據id找到第一個節點元素,然後再通過check方法選中該元素的。關鍵程式碼如下:

onLoadSuccess: function (node, data) {
                    if (data.length > 0) {
                        //找到第一個元素
                        var n = $('#tt').tree('find', data[0].id);
                        //呼叫選中事件
                        $('#tt').tree('check', n.target);
                    }
                }