コード例 #1
0
 internal static void RegisterJavascriptTranslations(JavascriptTranslatableMethodCollection methods)
 {
     methods.AddPropertyGetterTranslator(typeof(BindingPageInfo), nameof(EvaluatingOnServer),
                                         new GenericMethodCompiler(_ => new JsLiteral(false)));
     methods.AddPropertyGetterTranslator(typeof(BindingPageInfo), nameof(EvaluatingOnClient),
                                         new GenericMethodCompiler(_ => new JsLiteral(true)));
     methods.AddPropertyGetterTranslator(typeof(BindingPageInfo), nameof(IsPostbackRunning),
                                         new GenericMethodCompiler(_ => new JsIdentifierExpression("dotvvm").Member("isPostbackRunning").Invoke()));
 }
コード例 #2
0
 internal static void RegisterJavascriptTranslations(JavascriptTranslatableMethodCollection methods)
 {
     methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(Index),
                                         new GenericMethodCompiler(_ => new JsSymbolicParameter(JavascriptTranslator.CurrentIndexParameter)));
     methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsFirst),
                                         new GenericMethodCompiler(_ => new JsBinaryExpression(new JsSymbolicParameter(JavascriptTranslator.CurrentIndexParameter), BinaryOperatorType.Equal, new JsLiteral(0))));
     methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsOdd),
                                         new GenericMethodCompiler(_ => new JsBinaryExpression(new JsBinaryExpression(new JsSymbolicParameter(JavascriptTranslator.CurrentIndexParameter), BinaryOperatorType.Modulo, new JsLiteral(2)), BinaryOperatorType.Equal, new JsLiteral(1))));
     methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsEven),
                                         new GenericMethodCompiler(_ => new JsBinaryExpression(new JsBinaryExpression(new JsSymbolicParameter(JavascriptTranslator.CurrentIndexParameter), BinaryOperatorType.Modulo, new JsLiteral(2)), BinaryOperatorType.Equal, new JsLiteral(0))));
 }
コード例 #3
0
        internal static void RegisterJavascriptTranslations(JavascriptTranslatableMethodCollection methods)
        {
            IJavascriptMethodTranslator memberAccess(string name) =>
            new GenericMethodCompiler(
                builder: a => a[0].CastTo <JsObjectExpression>().Properties.Single(p => p.Name == name).Expression.Clone(),
                check: (_m, a, _a) => a.GetParameterAnnotation() is BindingParameterAnnotation ann && ann.ExtensionParameter is BindingCollectionInfoExtensionParameter
                );

            methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(Index), memberAccess(nameof(Index)));
            methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsFirst), memberAccess(nameof(IsFirst)));
            methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsOdd), memberAccess(nameof(IsOdd)));
            methods.AddPropertyGetterTranslator(typeof(BindingCollectionInfo), nameof(IsEven), memberAccess(nameof(IsEven)));
        }