OutlineBase.razor 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. @using FastReport.Utils;
  2. @using System;
  3. @using System.Text;
  4. @for (int i = 0; i < xml.Count; i++)
  5. {
  6. var open = false;
  7. if (Top && xml.Count == 1)
  8. {
  9. open = true;
  10. }
  11. var node = xml[i];
  12. var hasChildren = node.Count > 0;
  13. (string text, int page, float offset) Cortage = ReadOutlineNode(node);
  14. <OutlineNode HasChildren="hasChildren" Xml="node" Cortage="Cortage" Open="open" PageChanged="PageChanged"/>
  15. }
  16. @code {
  17. [Parameter]
  18. public XmlItem xml { get; set; }
  19. [Parameter]
  20. public bool Top { get; set; }
  21. [Parameter]
  22. public EventCallback<int> PageChanged { get; set; }
  23. (string text, int page, float offset) ReadOutlineNode(XmlItem node)
  24. {
  25. string text = node.GetProp("Text");
  26. int page = 0;
  27. float offset = 0f;
  28. string s = node.GetProp("Page");
  29. if (!s.IsNullOrWhiteSpace())
  30. {
  31. page = int.Parse(s);
  32. s = node.GetProp("Offset");
  33. if (!s.IsNullOrWhiteSpace())
  34. offset = (float)Converter.FromString(typeof(float), s) /* * PDF_DIVIDER*/;
  35. }
  36. return (text, page, offset);
  37. }
  38. }