_ConfigItemReferenceEditPartial.cshtml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. @using GreenTree.Nachtragsmanagement.Web.Extensions
  2. @model GreenTree.Nachtragsmanagement.Web.Models.Config.ConfigItemDataModel
  3. <div class="configItemValueEdit">
  4. <script type="text/javascript">
  5. var textSeparator = ", ";
  6. function onListBoxSelectionChanged(s, e) {
  7. updateText();
  8. }
  9. function updateText() {
  10. var selectedItems = Values.GetSelectedItems();
  11. devDropDownListConfigItemValues.SetText(getSelectedItemsText(selectedItems));
  12. }
  13. function getSelectedItemsText(items) {
  14. var texts = [];
  15. for (var i = 0; i < items.length; i++)
  16. if (items[i].index != 0)
  17. texts.push(items[i].text);
  18. return texts.join(textSeparator);
  19. }
  20. </script>
  21. @if (Model.IsValueCollection)
  22. {
  23. Html.DevExpress().DropDownEdit(t =>
  24. {
  25. t.Name = "devDropDownListConfigItemValues";
  26. t.Width = new Unit(100, UnitType.Percentage);
  27. t.SetDropDownWindowTemplateContent(l =>
  28. {
  29. Html.DevExpress().ListBox(lb =>
  30. {
  31. lb.Name = "Values";
  32. lb.Width = new Unit(100, UnitType.Percentage);
  33. lb.Properties.TextField = "Text";
  34. lb.Properties.ValueField = "Value";
  35. lb.Properties.SelectionMode = ListEditSelectionMode.CheckColumn;
  36. lb.ControlStyle.Border.BorderStyle = BorderStyle.None;
  37. lb.PreRender = (sender, e) =>
  38. {
  39. var listBox = sender as MVCxListBox;
  40. foreach (ListEditItem listItem in listBox.Items)
  41. {
  42. if (Model.Values == null || !Model.Values.Any(m => m == (string)listItem.Value)) continue;
  43. listItem.Selected = true;
  44. }
  45. };
  46. lb.Properties.ClientSideEvents.SelectedIndexChanged = "function (s, e) { onListBoxSelectionChanged(s, e); }";
  47. }).BindList(ViewData["ConfigReferenceValues"]).Render();
  48. });
  49. t.Properties.ClientSideEvents.Init = "function (s, e) { s.SetText(getSelectedItemsText(Values.GetSelectedItems())); }";
  50. }).Bind(ViewData["ConfigReferenceText"]).Render();
  51. }
  52. else
  53. {
  54. Html.DevExpress().ComboBoxFor(m => m.Value, t =>
  55. {
  56. t.Width = new Unit(100, UnitType.Percentage);
  57. t.Properties.TextField = "Text";
  58. t.Properties.ValueField = "Value";
  59. }).BindList(ViewData["ConfigReferenceValues"]).GetHtml();
  60. }
  61. </div>