2017-01-11 1 views
0

У меня есть это выпадающее меню, которое я заполняю значениями из БД. Я совмещая несколько значений и пытаюсь выровнять их:MVC DropDownListFor не показывает пробелы, добавленные к значениям в списке

     foreach (DataRow dr in dt.Rows) 
         { 
          string loc = dr.IsNull("STATEGEOG_LOC_NAME") ? "" : dr["STATEGEOG_LOC_NAME"].ToString(); 
          if (loc.Length < maxloc) 
           loc = SetStringLength(loc, maxloc); 
          string name = dr.IsNull("NAME") ? "" : dr["NAME"].ToString(); 
          if (name.Length < maxname) 
           name = SetStringLength(name, maxname); 
          string mtf = dr.IsNull("MTF_CODE") ? "" : dr["MTF_CODE"].ToString(); 
          if (mtf.Length < maxmtf) 
           mtf = SetStringLength(mtf, maxmtf); 
          TextValuePair model = new TextValuePair() 
          { 
           Value = dr.IsNull("IEN") ? "" : dr["IEN"].ToString(), 
           Text = loc + " " + name + " " + mtf 
          }; 
          countries.Add(model); 
         } 

    private static string SetStringLength(string input, int len) 
    { 
     return input.PadRight(len, ' '); 
    } 

Значение сравнивает просто найти самую длинную из значений в БД и блокнот текущее значения с пробелами, чтобы сделать это, чем длинная. Я вижу каждую строку, как это:

"MARYLAND        10 CSH (FT MEADE MD)       A11B1 " 

я отправляю его к виду с этим:

[HttpGet] 
    public ActionResult GetAllGeoLocations() 
    { 
     return Json(Repository.GetGeoLocationList(), JsonRequestBehavior.AllowGet); 
    } 

И загружается в DDL, как это:

$.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     url: '@Url.Action("GetAllGeoLocations")', 
     success: function (data) { 
      $("#ddlLocation").empty(); 
      $.each(data, function (Value, Text) { 
       var opt = '<option value=' + Text.Value + '>' + Text.Text + '</option>'; 
       $("#ddlLocation").append(opt); 
      }); 
     } 
    }); 

И каждое значение Я проверяю, когда я отлаживаю страницу, показывает правильное заполнение. Но когда выпадающее меню нажата, отступы удаляются. Может ли кто-нибудь сказать мне, почему?

Когда я использовать отладчик на странице я вижу значения загрузки в DDL, как это:

"<option value=6005>VIRGINIA        1 DENTAL SQ/SGD        F1783 </option>" 

Но выпадающий показать это:

enter image description here

+0

Что такое 'maxLoc'? попробуйте '& nbsp' добавить пространство. – mmushtaq

ответ

1

Не вините MVC/Бритва для этого. Это браузер. Попробуйте заменить пробелы в вашей опционной стоимости с

"&nbsp;" 

Try использовать:

var opt = '<option value=' + Text.Value + '>' + Text.Text.replace(/\s/g, "&nbsp;") + '</option>'; 

В вашем $ .each вид.

Это заставит пробелы.

+0

Это тоже не работает. Я использовал var text = Text.Text.replace ("", " "), и все, что я получаю, это один единственный   в строке. –

+0

Да, моя вина. Обновлен ответ! – FaustsErbe

+0

Положите это на страницу? –

Смежные вопросы