0

我根据所选项目的类型弹出各种不同大小的 Telerik RadWindows。每种类型的项目都有自己的编辑表单,点击时会弹出,所以我需要在 Javascript 中设置不同的窗口高度和宽度。现在我正在使用这个函数,它具有硬编码每种类型的尺寸:

 function GetEditWindowDimensions(type) {
        var dimensions = null;           
        switch (type) {
            case 'Type1':
                dimensions = { length: 330, width: 400 };
                break
            case 'Type2':     
                dimensions = { length: 550, width: 450 };
                break;
            case 'Type2':
                dimensions = { length: 260, width: 400 };
                break;    
            case 'Type3':    
                dimensions = { length: 260, width: 400 };
                break;
            case 'Type4':
                dimensions = { length: 260, width: 400 };
                break;
            case 'Type5':
                dimensions = { length: 330, width: 400 };
                break;
            default:
                dimensions = { length: 500, width: 500 };

        }
        return dimensions
    }

这是我加载 RadWindow 的函数:

   function OpenEditWindow(type) {

        var oDimensions = GetEditWindowDimensions(type)
        var oWindow = openWindow('myurl.aspx', oDimensions.length, oDimensions.width, true);

        oWindow.MoveTo(200, 25);
    }

必须有更好的方法来做到这一点。您对如何在 Javascript 中以可配置的方式存储/检索这些维度有任何想法吗?类型本身由项目中 .vb 文件中的枚举定义。我将枚举值名称传递给 GetEditWindowDimensions()。

提前致谢!

4

3 回答 3

2

您可以将其存储在如下对象中:

    var dimensions = {
        'Type1': { length: 330, width: 400 },
        'Type2': { length: 550, width: 450 },
        'Type3': { length: 260, width: 400 }
    }

然后像访问它们

dimensions.type1.length; // <-- 330
dimensions.type1.width; // <-- 400
于 2012-08-29T17:51:15.177 回答
2

为什么不只创建一个哈希?

var dWindowDimensions = }
    Type1: { length: 330, width: 400 },
    Type2: { length: 550, width: 450 },
    ...
}

然后,当您需要读取值时:

var oDimensions = dWindowDimensions[type]
于 2012-08-29T17:51:48.070 回答
1

像这样存储它们:

dimensions = {
    Type1: {
        length: 330,
        width: 400
    },
    ...
    ...
    Type5:  {
        length: 330,
        width: 400
    }
};

然后,您可以通过执行dimensions.Type1dimensions[type]动态查找它们来访问它们。对于默认情况,只需检查您尝试访问的维度是否为undefined. 如果是,请使用默认长度和宽度。例如:

var dimension = dimensions[type];
if(typeof dimension === "undefined") {
    dimension = {
        length: 500,
        width: 500 
    };
}

或更简洁:

var dimension = dimensions[type] || {length: 500, width: 500};

||如果第一个值不是“真实的”,这将使用第二个值(在 之后的那个)。

于 2012-08-29T17:53:38.933 回答