Prismatch på sammenlignelige varer i DanmarkPrismatch på sammenlignelige varer i Danmark
Bestil før kl. 14.00 - så sender vi i dagBestil før kl. 14.00 - så sender vi i dag
Danmarks største udvalg inden for NO DIGDanmarks største udvalg inden for NO DIG
Vi uddanner dig, inden du tager på opgaveVi uddanner dig, inden du tager på opgave

Få del i alle de gode tilbud

​Med vores prismatch kan du tage det roligt. Vi bestræber os altid på at have den laveste pris på vores produkter. Med prismatch mener vi, at findes et identisk produkt billigere hos anden forhandler i Danmark, så matcher vi prisen. Bemærk at prismatch ikke gælder ved specielle salgstilbud, køtilbud, åbningstilbud m.m.

JUST LIGHT UV-packer

JUST LIGHT er det seneste skud på stammen inden for punktrenovering. Med det integrerede UV lys kan JUST LIGHT packeren reducere hærdetiden fra 90- til 8 minutter. Dette kan gøres, uden at det går ud over forberedelsestiden. Tværtimod. Du har alt den tid til monteringen, som du har brug for. 

Error executing template "/Designs/Rapido/Paragraph/LRT_PromotionProductsCards.cshtml"
System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Exception of type 'System.InvalidOperationException' was thrown.
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.VerifyIntegrity()
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.TryGetValue(TKey key, TValue& value)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValue(TKey key, CreateValueCallback createValueCallback)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetOrCreateValue(TKey key)
   at Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode.GetStructure(SyntaxTrivia trivia)
   at Microsoft.CodeAnalysis.SyntaxTrivia.GetStructure()
   at Microsoft.CodeAnalysis.SyntaxNode.<DescendantTriviaIntoTrivia>d__171.MoveNext()
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNode node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNodeOrToken& node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.GetContexts(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.Create(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.EnsureNullableContextMapInitialized()
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxTree syntaxTree, Int32 position)
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxToken token)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(IdentifierNameSyntax node, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics, NamespaceOrTypeSymbol qualifierOpt)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeOrAliasSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.Imports.FromSyntax(CSharpSyntaxNode declarationSyntax, InContainerBinder binder, ConsList`1 basesBeingResolved, Boolean inUsing)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.<>c__DisplayClass6_0.<.ctor>b__0(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.GetImports(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetImports(SingleNamespaceDeclaration declaration)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i)
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i)
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSourceDeclarationDiagnostics(SyntaxTree syntaxTree, Nullable`1 filterSpanWithinTree, Func`4 locationFilterOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, DiagnosticBag diagnostics, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, CompilationTestData testData, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, CancellationToken cancellationToken)
   at RazorEngine.Roslyn.CSharp.RoslynCompilerServiceBase.CompileType(TypeContext context)
   at RazorEngine.Templating.RazorEngineCore.CreateTemplateType(ITemplateSource razorTemplate, Type modelType)
   at RazorEngine.Templating.RazorEngineCore.Compile(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Exception of type 'System.InvalidOperationException' was thrown.
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.VerifyIntegrity()
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.TryGetValue(TKey key, TValue& value)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValue(TKey key, CreateValueCallback createValueCallback)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetOrCreateValue(TKey key)
   at Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode.GetStructure(SyntaxTrivia trivia)
   at Microsoft.CodeAnalysis.SyntaxTrivia.GetStructure()
   at Microsoft.CodeAnalysis.SyntaxNode.<DescendantTriviaIntoTrivia>d__171.MoveNext()
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNode node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNodeOrToken& node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.GetContexts(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.Create(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.EnsureNullableContextMapInitialized()
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxTree syntaxTree, Int32 position)
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxToken token)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(IdentifierNameSyntax node, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics, NamespaceOrTypeSymbol qualifierOpt)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeOrAliasSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.Imports.FromSyntax(CSharpSyntaxNode declarationSyntax, InContainerBinder binder, ConsList`1 basesBeingResolved, Boolean inUsing)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.<>c__DisplayClass6_0.<.ctor>b__0(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.GetImports(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetImports(SingleNamespaceDeclaration declaration)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i)
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i)
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
---> (Inner Exception #0) System.InvalidOperationException: Exception of type 'System.InvalidOperationException' was thrown.
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.VerifyIntegrity()
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.TryGetValue(TKey key, TValue& value)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValue(TKey key, CreateValueCallback createValueCallback)
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetOrCreateValue(TKey key)
   at Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode.GetStructure(SyntaxTrivia trivia)
   at Microsoft.CodeAnalysis.SyntaxTrivia.GetStructure()
   at Microsoft.CodeAnalysis.SyntaxNode.<DescendantTriviaIntoTrivia>d__171.MoveNext()
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNode node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.SyntaxNodeOrToken.GetDirectives[TDirective](SyntaxNodeOrToken& node, Func`2 filter, List`1& directives)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.GetContexts(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap.Create(SyntaxTree tree, Boolean isGeneratedCode)
   at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.EnsureNullableContextMapInitialized()
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxTree syntaxTree, Int32 position)
   at Microsoft.CodeAnalysis.CSharp.Binder.AreNullableAnnotationsEnabled(SyntaxToken token)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(IdentifierNameSyntax node, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics, NamespaceOrTypeSymbol qualifierOpt)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeOrAliasSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.Imports.FromSyntax(CSharpSyntaxNode declarationSyntax, InContainerBinder binder, ConsList`1 basesBeingResolved, Boolean inUsing)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.<>c__DisplayClass6_0.<.ctor>b__0(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.GetImports(ConsList`1 basesBeingResolved)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetImports(SingleNamespaceDeclaration declaration)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i)
   at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<---
<---


1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Ecommerce.Frontend; 3 @using Dynamicweb.Core; 4 @using System.Linq; 5 @using Dynamicweb.Security 6 @using Dynamicweb.Security.UserManagement; 7 8 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 9 10 @functions { 11 public string columnClass() 12 { 13 if (Model.Item.GetList("WidthMobile").SelectedValue == "hide"){ 14 return "grid__col-lg-" + Model.Item.GetList("Width").SelectedValue + " grid__col-md-" + Model.Item.GetList("Width").SelectedValue + " grid__col-sm-" + Model.Item.GetList("Width").SelectedValue + " u-hidden-xs u-hidden-xxs"; 15 } else { 16 return "grid__col-lg-" + Model.Item.GetList("Width").SelectedValue + " grid__col-md-" + Model.Item.GetList("Width").SelectedValue + " grid__col-sm-" + Model.Item.GetList("Width").SelectedValue + " grid__col-xs-" + Model.Item.GetList("WidthMobile").SelectedValue; 17 } 18 } 19 } 20 21 22 @{ 23 int productCatalogId = GetPageIdByNavigationTag("PromotionFeed2"); 24 string feedFullUrl = "/Default.aspx?ID=" + productCatalogId; 25 int paragraphId = Model.ID; 26 string spotcardsCustomCssClass = "spot-cards"; 27 string spotcardscontainerCustomCssClass = "spot-cards-container"; 28 string spotcardsHeadline = Model.Item.GetValue("Headline").ToString(); 29 30 var products = Model.Item.GetValue("Products") as List<ProductViewModel>; 31 32 feedFullUrl += "&Combinations="; 33 bool onlyPreview = Converter.ToBoolean(Pageview.Area.Item["OnlyPreviewForAnonymous"]) && Pageview.User == null; 34 35 if (products != null) 36 { 37 for (var i = 0; i < products.Count; i++) 38 { 39 feedFullUrl += products[i].Id; 40 feedFullUrl += products[i].VariantId != "" ? "%20" + products[i].VariantId : ""; 41 feedFullUrl += ","; 42 } 43 } 44 45 else 46 { 47 feedFullUrl = ""; 48 } 49 50 var columnSize = 3; 51 52 if (products.Count == 3) 53 { 54 columnSize = 4; 55 } 56 57 if (products.Count == 2) 58 { 59 columnSize = 6; 60 } 61 62 if (products.Count == 1) 63 { 64 columnSize = 12; 65 } 66 67 switch (Model.Item.GetList("Width").SelectedValue) { 68 case "6": 69 case "4": 70 columnSize = 6; 71 break; 72 case "3": 73 columnSize = 12; 74 break; 75 } 76 } 77 78 <div class="@columnClass() py-0 my-lg-8 my-6 @spotcardscontainerCustomCssClass grid__col--bleed"> 79 <h2 class="grid__col-12 grid__col--bleed-y center-container">@spotcardsHeadline</h2> 80 <div class="center-container"> 81 <div class="grid js-handlebars-root" id="PromotionProductList_@paragraphId" data-template="PromotionProducts" data-pre-render-template="ProductPreRenderContainer" data-json-feed="@feedFullUrl" data-preloader="minimal"></div> 82 </div> 83 </div> 84 85 <script id="ProductPreRenderContainer" type="text/x-template"> 86 <div class="grid__col-md-@columnSize"> 87 <div class="pre-render-element pre-render-element--md"></div> 88 </div> 89 <div class="grid__col-md-@columnSize"> 90 <div class="pre-render-element pre-render-element--md"></div> 91 </div> 92 <div class="grid__col-md-@columnSize"> 93 <div class="pre-render-element pre-render-element--md"></div> 94 </div> 95 <div class="grid__col-md-@columnSize"> 96 <div class="pre-render-element pre-render-element--md"></div> 97 </div> 98 </script> 99 100 101 @* Grid view *@ 102 103 <script id="PromotionProducts" type="text/x-template"> 104 {{#.}} 105 <div class="grid__col-lg-@columnSize grid__col-md-@columnSize grid__col-sm-@columnSize grid__col-xs-6"> 106 <div class="@spotcardsCustomCssClass spot-product"> 107 <div class="grid__cell product-list__grid-item__image dw-mod {{noImage}}"> 108 <div class="stickers-container dw-mod"> 109 {{#Stickers}} 110 {{>Sticker}} 111 {{/Stickers}} 112 </div> 113 <a href="{{link}}" onclick="Scroll.SavePosition(event)"> 114 <img class="spot-product__image grid__cell-img grid__cell-img--centered b-lazy" src="/Files/Images/placeholder.gif" data-src="/Admin/Public/GetImage.ashx?width=250&height=250&crop=5&Compression=75&image={{image}}" alt="{{name}}" /></a> 115 </div> 116 117 <div class="grid__cell product-list__grid-item__price-info {{shortGridInfo}} dw-mod"> 118 <a class="spot-product__name" href="{{link}}" onclick="Scroll.SavePosition(event)" title="{{name}}"><h6>{{name}}</h6></a> 119 <div class="spot-product__number item-number dw-mod">@Translate("product number") {{number}}</div> 120 <input type="hidden" value="{{unitId}}" name="Unit" id="Unit_{{id}}" /> 121 <input type="hidden" value="{{variantid}}" name="VariantID" id="Variant_{{id}}" /> 122 </div> 123 124 <div class="product-list__grid-item__footer dw-mod"> 125 <div class="u-ta-center"> 126 @if (User.IsExtranetUserLoggedIn()) 127 { 128 <div class="spot-product__price price dw-mod">{{price}}</div> 129 <div class="spot-product__before-price before-price {{onSale}} dw-mod">{{discount}}</div> 130 131 132 <div class="spot-product__controls"> 133 {{#ifCond hasVariants "!=" false}} 134 <div class="product-card__quantity--condenced product-card__quantity spot-product__quantity"> 135 <input id="Quantity_{{id}}" class="product-card__quantity-input js-quantity-input" name="Quantity{{id}}" type="number" min="1" max="48" value="1"> 136 <span class="product-card__quantity-add js-product-quantity-add" data-value="1" data-icon-nz="chevron-up"></span> 137 <span class="product-card__quantity-subtract js-product-quantity-subtract" data-value="-1" data-icon-nz="chevron-down"></span> 138 </div> 139 <button type="button" id="CartButton_{{id}}" class="spot-product__cart btn btn--primary btn--full u-no-margin sign-in-modal-trigger-button dw-mod mt-3" name="submit" onclick="Cart.AddToCart(event, '{{id}}', document.getElementById('Quantity_{{id}}').value, 'Unit_{{id}}', 'Variant_{{id}}');"><i class="fa fa-shopping-cart"></i><span class="u-hidden-xs u-hidden-xxs"> @Translate("Add to cart") dsrt:{{hasVariants}}</span></button> 140 {{else}} 141 <a href="{{link}}" class="btn btn-secondary dw-mod js-scroll-btn d-inline-block px-5">@Translate("Select variant")</a> 142 {{/ifCond}} 143 </div> 144 145 } 146 147 else 148 { 149 <h5>Log ind for at se prisen</h5> 150 <label for="SignInModalTrigger" class="btn btn--primary btn--full u-no-margin sign-in-modal-trigger-button dw-mod" onclick="setTimeout(function () { document.getElementById('LoginUsername').focus() }, 10)">@Translate("Sign in")</label> 151 } 152 153 </div> 154 </div> 155 </div> 156 </div> 157 {{/.}} 158 159 {{^.}} 160 <div class="grid__col-12"> 161 <h2 class="u-ta-center">@Translate("No products found")</h2> 162 </div> 163 {{/.}} 164 </script> 165 166 <script id="Sticker" type="text/x-template"> 167 <div class="stickers-container__tag {{className}} dw-mod">{{text}}</div> 168 </script> 169

Køb online 24/7

Opret en bruger på www.lrt.dk allerede i dag, og få adgang til online køb. Udover adgang til webshoppen får du også mulighed for at lave favoritlister, så du hurtigt kan bestille dine favoritprodukter. Derudover kan du se dine tidligere webordrer, som du med få klik kan genbestille.

Kataloger

Få et hurtigt overblik over vores produktsortiment

For at gøre det nemmere for dig at finde det produkt, du søger, har vi valgt at lave en række kataloger, hvori du finder vores produktsortiment. Du kan se alle katalogerne herunder.

Kurser i punktrenovering, strømpeforing eller grenrørsrenovering

På matriklen i Varde har vi de træningsfaciliteter, der er behov for. Både når det gælder undervisning i krav og lovgivning, men også når vi taler om praktiske øvelser. På alle kurser får du lov til at lave en reparation af et kloakrør i virkelighedsnære forhold, så du er bedst rustet til at lave reparationen i den virkelige verden.

Kurser

 

Professionelt udstyr til NO DIG

Professionelt udstyr til opgravningsfri ledningsrenovering (NO DIG) fra Lauridsen Rørteknik. Hos Lauridsen Rørteknik er vi dedikerede til at tilbyde førsteklasses udstyr til opgravningsfri ledningsrenovering. Med mere end 25 års erfaring er vi en af landets førende leverandører af opgravningsfrie renoveringsmetoder og professionelt kloakudstyr.

Beskyttelse af Miljøet

NO DIG er en vedligeholdelsesmetode for rørsystemer, der eliminerer behovet for opgravning eller udskiftning af rør. I en verden, hvor byerne vokser, og infrastrukturen bliver stadig mere kompleks, spiller NO DIG en afgørende rolle i at beskytte miljøet. Denne metode sikrer, at vand, spildevand og andre væsker kan transporteres effektivt og sikkert uden de økonomiske omkostninger og miljøpåvirkninger, der er forbundet med traditionelle opgravningsmetoder.

Moderne byggeri, sanitet og infrastruktur ville simpelthen være for dyre og belastende for miljøet uden NO DIG's avancerede renoveringsmetoder. Ved at minimere jordarbejde og bevare eksisterende infrastruktur reducerer NO DIG CO2-udledningen og sparer ressourcer.

For at udføre renoveringsopgaver med succes er det afgørende at have adgang til det bedste udstyr, herunder udstyr til punktrenovering, strømpeforing og meget mere. Lauridsen Rørteknik tilbyder professionelt udstyr til kloakarbejde, inspektion, fejlsøgning, åbning og rensning af rør, NO DIG-renoveringsmetoder, kabeltræk og meget andet.

Udforsk vores brede sortiment af udstyr

Lauridsen Rørteknik er stolte af at præsentere et omfattende sortiment af NO DIG-udstyr. Uanset dit behov, fra inspektion til installation, har vi det rette værktøj til opgaven. Vi er forpligtede til at levere udstyr, der ikke kun opfylder dine behov, men også bidrager til at beskytte vores miljø gennem bæredygtige og skånsomme renoveringsmetoder.

Kontakt os

Har du spørgsmål til vores produkter, løsninger, kurser eller services? Vi står klar til at hjælpe. Udfyld formularen herunder, og vi kontakter dig hurtigst muligt.