2012-08-29 49 views
0

我根據所選項目的類型彈出不同大小的各種Telerik RadWindows。每種類型的項目都有自己的編輯窗體,點擊時會彈出,所以我需要在Javascript中設置不同的窗口高度和寬度。現在,我使用這個功能,這對於每種類型的硬編碼尺寸:我應該在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()。

在此先感謝!

+0

感謝您的答案!非常有幫助。 – unnknown

回答

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}; 

這將使用第二值(||後的那一個),如果所述第一值不是 「truthy」。

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 
2

訪問它們爲什麼不只是創建一個哈希?

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

然後,當你需要閱讀的價值觀:

var oDimensions = dWindowDimensions[type]