사이트코어에서 탬플릿을 만들다보면 다양한 템프릿 필드를 선택할수가 있다. 그 중에서 Key와 Value 개념인 "Name Value List" 타입에 대하여 알아보도록 하겠다.
간혹, 데이타소스를 만들는데 있어서, 똑같은 데이타 타입임에도 불구하여, 데이타의 수 만큼 데이타 이이템을 만들어야 하는경우가 있다.
사이트 이름 | 사이트 URL |
구글 | http://www.google.com |
야후 | http://www.yahoo.com |
레딧 | http://www.reddit.com |
사이트코어 | http://www.sitecore.com |
... | ... |
이럴경우 사이트 각각의 아이템을 만들 필요없이, 템플릿의 "Name Value List"을 선택함으로로써 하나의 데이타소스 아이템에 여러게의 값을 저장할수가 있다. 프로그래밍에서 Array 또는 List와 똑같은 개념이라고 할수있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var db = Sitecore.Configuration.Factory.GetDatabase("master"); // NameValueType의 필드를 가지고 있는 데이타소스 아이템의 ID 값을 입력하다. var item = db.GetItem("{8A8E427B-9162-4680-AE69-239217F5B9AB}"); //데이타를 초기화하고, var data = new NameValueCollection(); // 필요한만큼 데이타를 추가한다. data.Add("name1", "value1"); data.Add("name2", "value2"); data.Add("name3", "value3"); data.Add("name4", "value4"); using (new Sitecore.SecurityModel.SecurityDisabler()) { item.Editing.BeginEdit(); try { //데이타값은 필드 이름을 입력한다. //'&'는 값들의 Divider이다. item["NameList"] = StringUtil.NameValuesToString(data, "&"); } finally { item.Editing.EndEdit(); } } |