Add ability to specify culture and format
This lets us specify the associations between the HTML5 field types and these settings.
This commit is contained in:
parent
3aeee00899
commit
af7ac7ff29
|
|
@ -18,10 +18,10 @@ namespace Microsoft.AspNetCore.Components
|
||||||
}
|
}
|
||||||
[Microsoft.AspNetCore.Components.BindElementAttribute("select", null, "value", "onchange")]
|
[Microsoft.AspNetCore.Components.BindElementAttribute("select", null, "value", "onchange")]
|
||||||
[Microsoft.AspNetCore.Components.BindElementAttribute("textarea", null, "value", "onchange")]
|
[Microsoft.AspNetCore.Components.BindElementAttribute("textarea", null, "value", "onchange")]
|
||||||
[Microsoft.AspNetCore.Components.BindInputElementAttribute("checkbox", null, "checked", "onchange")]
|
[Microsoft.AspNetCore.Components.BindInputElementAttribute("checkbox", null, "checked", "onchange", false, null)]
|
||||||
[Microsoft.AspNetCore.Components.BindInputElementAttribute("text", null, "value", "onchange")]
|
[Microsoft.AspNetCore.Components.BindInputElementAttribute("text", null, "value", "onchange", false, null)]
|
||||||
[Microsoft.AspNetCore.Components.BindInputElementAttribute(null, "value", "value", "onchange")]
|
[Microsoft.AspNetCore.Components.BindInputElementAttribute(null, "value", "value", "onchange", false, null)]
|
||||||
[Microsoft.AspNetCore.Components.BindInputElementAttribute(null, null, "value", "onchange")]
|
[Microsoft.AspNetCore.Components.BindInputElementAttribute(null, null, "value", "onchange", false, null)]
|
||||||
public static partial class BindAttributes
|
public static partial class BindAttributes
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -84,8 +84,10 @@ namespace Microsoft.AspNetCore.Components
|
||||||
[System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
|
[System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
|
||||||
public sealed partial class BindInputElementAttribute : System.Attribute
|
public sealed partial class BindInputElementAttribute : System.Attribute
|
||||||
{
|
{
|
||||||
public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute) { }
|
public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute, bool isInvariantCulture, string format) { }
|
||||||
public string ChangeAttribute { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
public string ChangeAttribute { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
|
public string Format { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
|
public bool IsInvariantCulture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
public string Suffix { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
public string Suffix { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
public string Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
public string Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
public string ValueAttribute { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
public string ValueAttribute { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||||
|
|
|
||||||
|
|
@ -13,14 +13,14 @@ namespace Microsoft.AspNetCore.Components
|
||||||
|
|
||||||
// Handles cases like <input @bind="..." /> - this is a fallback and will be ignored
|
// Handles cases like <input @bind="..." /> - this is a fallback and will be ignored
|
||||||
// when a specific type attribute is applied.
|
// when a specific type attribute is applied.
|
||||||
[BindInputElement(null, null, "value", "onchange")]
|
[BindInputElement(null, null, "value", "onchange", isInvariantCulture: false, format: null)]
|
||||||
|
|
||||||
// Handles cases like <input @bind-value="..." /> - this is a fallback and will be ignored
|
// Handles cases like <input @bind-value="..." /> - this is a fallback and will be ignored
|
||||||
// when a specific type attribute is applied.
|
// when a specific type attribute is applied.
|
||||||
[BindInputElement(null, "value", "value", "onchange")]
|
[BindInputElement(null, "value", "value", "onchange", isInvariantCulture: false, format: null)]
|
||||||
|
|
||||||
[BindInputElement("checkbox", null, "checked", "onchange")]
|
[BindInputElement("checkbox", null, "checked", "onchange", isInvariantCulture: false, format: null)]
|
||||||
[BindInputElement("text", null, "value", "onchange")]
|
[BindInputElement("text", null, "value", "onchange", isInvariantCulture: false, format: null)]
|
||||||
|
|
||||||
[BindElement("select", null, "value", "onchange")]
|
[BindElement("select", null, "value", "onchange")]
|
||||||
[BindElement("textarea", null, "value", "onchange")]
|
[BindElement("textarea", null, "value", "onchange")]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Components
|
namespace Microsoft.AspNetCore.Components
|
||||||
{
|
{
|
||||||
|
|
@ -18,7 +19,13 @@ namespace Microsoft.AspNetCore.Components
|
||||||
/// <param name="suffix">The suffix value.</param>
|
/// <param name="suffix">The suffix value.</param>
|
||||||
/// <param name="valueAttribute">The name of the value attribute to be bound.</param>
|
/// <param name="valueAttribute">The name of the value attribute to be bound.</param>
|
||||||
/// <param name="changeAttribute">The name of an attribute that will register an associated change event.</param>
|
/// <param name="changeAttribute">The name of an attribute that will register an associated change event.</param>
|
||||||
public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute)
|
/// <param name="isInvariantCulture">
|
||||||
|
/// Determines whether binding will use <see cref="CultureInfo.InvariantCulture" /> or <see cref="CultureInfo.CurrentCulture"/>.
|
||||||
|
/// </param>
|
||||||
|
/// <param name="format">
|
||||||
|
/// An optional format to use when converting values.
|
||||||
|
/// </param>
|
||||||
|
public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute, bool isInvariantCulture, string format)
|
||||||
{
|
{
|
||||||
if (valueAttribute == null)
|
if (valueAttribute == null)
|
||||||
{
|
{
|
||||||
|
|
@ -34,6 +41,8 @@ namespace Microsoft.AspNetCore.Components
|
||||||
Suffix = suffix;
|
Suffix = suffix;
|
||||||
ValueAttribute = valueAttribute;
|
ValueAttribute = valueAttribute;
|
||||||
ChangeAttribute = changeAttribute;
|
ChangeAttribute = changeAttribute;
|
||||||
|
IsInvariantCulture = isInvariantCulture;
|
||||||
|
Format = format;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -55,5 +64,16 @@ namespace Microsoft.AspNetCore.Components
|
||||||
/// Gets the name of an attribute that will register an associated change event.
|
/// Gets the name of an attribute that will register an associated change event.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ChangeAttribute { get; }
|
public string ChangeAttribute { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a value that determines whether binding will use <see cref="CultureInfo.InvariantCulture" /> or
|
||||||
|
/// <see cref="CultureInfo.CurrentCulture"/>.
|
||||||
|
/// </summary>
|
||||||
|
public bool IsInvariantCulture { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets an optional format to use when converting values.
|
||||||
|
/// </summary>
|
||||||
|
public string Format { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue