2017-07-25 46 views
0

我在我的ASP.NET MVC5項目中包含當前目錄(Active Directory TreeView,使用組織單位)的父元素的字符串。我想實現是有你通過遍歷每個元素的偏移,這樣的話就可以看到父元素和視覺效果都不錯,像這樣:爲每個迭代添加一個偏移量

Element 1 
    Element 1.1 
     SubElements(Current) //These are not concerned by my question 
     MoreSubs 
     etc... 

我用剃刀的觀點,我有嘗試使用方法PadLeftString.Format,但結果不是很好,我找不到一個解決方案,可以得到一些好的結果。我也注意到,使用PadLeft我不能使用空格作爲字符,因此它不適合我的需要。我無法設法使String.Format工作。以下是我對現在:

string myString = "OU=DR,OU=MR,OU=GTC," 
int offset = 5; 
string[] units = myString.Split(','); 
foreach (var unit in units) 
{ 
    if(unit.Equals("")|| unit.Equals(" ")){ 
     continue; 
    } 
    @unit.PadLeft(offset, '-')<br/> 
    //String.Format("{0,"+offset+"}",unit); couldn't make this work 
    offset += 5; 
} 

沒關係事實證明我的組織單位顛倒重複了,現在我只希望這個偏移量(可能的東西真的很容易,我不能做到:()下面這給這種視覺:

Elements 1 
Element 1.1 //No padding here, why? 
---Elements 1.2 
    SubElements 
+1

你爲什麼綁所以這與'PadLeft()'假設你的!在視圖中顯示,使用css風格具有填充或邊距的元素。 –

+0

是的,但如何區分深度?說1有一個偏移0,然後1.1偏移5px然後1.2是10px?但我不知道它有多深 –

+0

啊我想我明白你的意思了,我會嘗試 –

回答

0

我設法這樣說,不知道這是否是真的是最好的方式,但它的工作原理

string myString = "OU=DR,OU=MR,OU=GTC,"; 
string offSet = "5px"; 
string[] units = myString.Split(','); 
foreach (var unit in units) 
{ 
    if (unit.Equals("") || unit.Equals(" ")) { 
     continue; 
    } 
    <span class="glyphicon glyphicon-folder-open"></span> 
    <b id="orgUnit" style="padding-left:@offSet">@unit</b> <br/> 
    offSet = offSet.Replace("px", ""); 
    int offToInt = int.Parse(offSet); 
    offToInt += 10; 
    offSet = offToInt.ToString()+"px"; 
}