Skip to content

Commit 3919dd5

Browse files
Ryan Nowakrynowak
Ryan Nowak
authored andcommitted
Fix globalization for @bind-value
Fixes: #12631 These mappings were missing and adding them restores the correct behaviour. Mixing up the usage of `@bind` vs `@bind-value` so we have more coverage of this.
1 parent 82478ea commit 3919dd5

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ namespace Microsoft.AspNetCore.Components
66
[Microsoft.AspNetCore.Components.BindElementAttribute("select", null, "value", "onchange")]
77
[Microsoft.AspNetCore.Components.BindElementAttribute("textarea", null, "value", "onchange")]
88
[Microsoft.AspNetCore.Components.BindInputElementAttribute("checkbox", null, "checked", "onchange", false, null)]
9+
[Microsoft.AspNetCore.Components.BindInputElementAttribute("date", "value", "value", "onchange", true, "yyyy-MM-dd")]
910
[Microsoft.AspNetCore.Components.BindInputElementAttribute("date", null, "value", "onchange", true, "yyyy-MM-dd")]
11+
[Microsoft.AspNetCore.Components.BindInputElementAttribute("number", "value", "value", "onchange", true, null)]
1012
[Microsoft.AspNetCore.Components.BindInputElementAttribute("number", null, "value", "onchange", true, null)]
1113
[Microsoft.AspNetCore.Components.BindInputElementAttribute("text", null, "value", "onchange", false, null)]
1214
[Microsoft.AspNetCore.Components.BindInputElementAttribute(null, "value", "value", "onchange", false, null)]

src/Components/Web/src/BindAttributes.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ namespace Microsoft.AspNetCore.Components
2424

2525
// type="number" is invariant culture
2626
[BindInputElement("number", null, "value", "onchange", isInvariantCulture: true, format: null)]
27+
[BindInputElement("number", "value", "value", "onchange", isInvariantCulture: true, format: null)]
2728

2829
// type="date" is invariant culture with a specific format
2930
[BindInputElement("date", null, "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-dd")]
31+
[BindInputElement("date", "value", "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-dd")]
3032

3133
[BindElement("select", null, "value", "onchange")]
3234
[BindElement("textarea", null, "value", "onchange")]

src/Components/test/testassets/BasicTestApp/BindCasesComponent.razor

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<h3 id="bind-cases">Bind cases</h3>
22

3+
@* There are a mix of cases here using bind and bind-value for coverage *@
4+
35
<h2>Textbox</h2>
46
<p>
57
Initially blank:
@@ -32,7 +34,7 @@
3234
</p>
3335
<p>
3436
Nullable int:
35-
<input id="textbox-nullable-int" @bind="textboxNullableIntValue" type="number" />
37+
<input id="textbox-nullable-int" @bind-value="textboxNullableIntValue" type="number" />
3638
<span id="textbox-nullable-int-value">@textboxNullableIntValue</span>
3739
<input id="textbox-nullable-int-mirror" @bind="textboxNullableIntValue" readonly />
3840
</p>
@@ -50,7 +52,7 @@
5052
</p>
5153
<p>
5254
float:
53-
<input id="textbox-float" @bind="textboxFloatValue" type="number" />
55+
<input id="textbox-float" @bind-value="textboxFloatValue" type="number" />
5456
<span id="textbox-float-value">@textboxFloatValue</span>
5557
<input id="textbox-float-mirror" @bind="textboxFloatValue" readonly />
5658
</p>
@@ -74,7 +76,7 @@
7476
</p>
7577
<p>
7678
decimal:
77-
<input id="textbox-decimal" @bind="textboxDecimalValue" type="number" />
79+
<input id="textbox-decimal" @bind-value="textboxDecimalValue" type="number" />
7880
<span id="textbox-decimal-value">@textboxDecimalValue</span>
7981
<input id="textbox-decimal-mirror" @bind="textboxDecimalValue" readonly />
8082
</p>
@@ -119,7 +121,7 @@
119121
</p>
120122
<p>
121123
Nullable DateTime:
122-
<input id="textbox-nullable-datetime" @bind="textboxNullableDateTimeValue" type="text" />
124+
<input id="textbox-nullable-datetime" @bind-value="textboxNullableDateTimeValue" type="text" />
123125
<span id="textbox-nullable-datetime-value">@textboxNullableDateTimeValue</span>
124126
<input id="textbox-nullable-datetime-mirror" @bind="textboxNullableDateTimeValue" readonly />
125127
</p>
@@ -149,7 +151,7 @@
149151
</p>
150152
<p>
151153
DateTime (format):
152-
<input id="textbox-datetime-format" @bind="textboxDateTimeFormatValue" type="text" @bind:format="MM-dd" />
154+
<input id="textbox-datetime-format" @bind-value="textboxDateTimeFormatValue" type="text" @bind-value:format="MM-dd" />
153155
<span id="textbox-datetime-format-value">@textboxDateTimeFormatValue</span>
154156
<input id="textbox-datetime-format-mirror" @bind="textboxDateTimeFormatValue" readonly />
155157
</p>
@@ -161,7 +163,7 @@
161163
</p>
162164
<p>
163165
DateTime (format / invalid value):
164-
<input id="textbox-datetime-format-invalid" @bind="textboxDateTimeFormatInvalidValue" type="text" @bind:format="MM-dd" />
166+
<input id="textbox-datetime-format-invalid" @bind-value="textboxDateTimeFormatInvalidValue" type="text" @bind-value:format="MM-dd" />
165167
<span id="textbox-datetime-format-invalid-value">@textboxDateTimeFormatInvalidValue</span>
166168
<input id="textbox-datetime-format-invalid-mirror" @bind="textboxDateTimeFormatInvalidValue" readonly />
167169
</p>

src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
<h3 id="globalization-cases">Globalization Bind Cases</h3>
44
<h3 id="culture-name-display">Culture is: @System.Globalization.CultureInfo.CurrentCulture.Name</h3>
55

6+
@* There are a mix of cases here using bind and bind-value for coverage *@
7+
68
<div>
79
<p>Numbers using bind in text fields</p>
810
<div>
911
int: <input type="text" id="input_type_text_int" @bind="inputTypeTextInt" />
1012
<span id="input_type_text_int_value">@inputTypeTextInt</span>
1113
</div>
1214
<div>
13-
decimal: <input type="text" id="input_type_text_decimal" @bind="inputTypeTextDecimal" />
15+
decimal: <input type="text" id="input_type_text_decimal" @bind-value="inputTypeTextDecimal" />
1416
<span id="input_type_text_decimal_value">@inputTypeTextDecimal</span>
1517
</div>
1618
</div>
@@ -22,7 +24,7 @@
2224
<span id="input_type_text_datetime_value">@inputTypeTextDateTime</span>
2325
</div>
2426
<div>
25-
DateTimeOffset: <input type="text" id="input_type_text_datetimeoffset" @bind="inputTypeTextDateTimeOffset" />
27+
DateTimeOffset: <input type="text" id="input_type_text_datetimeoffset" @bind-value="inputTypeTextDateTimeOffset" />
2628
<span id="input_type_text_datetimeoffset_value">@inputTypeTextDateTimeOffset</span>
2729
</div>
2830
</div>
@@ -34,7 +36,7 @@
3436
<span id="input_type_number_int_value">@inputTypeNumberInt</span>
3537
</div>
3638
<div>
37-
decimal: <input type="number" id="input_type_number_decimal" @bind="inputTypeNumberDecimal" />
39+
decimal: <input type="number" id="input_type_number_decimal" @bind-value="inputTypeNumberDecimal" />
3840
<span id="input_type_number_decimal_value">@inputTypeNumberDecimal</span>
3941
</div>
4042
</div>
@@ -47,7 +49,7 @@
4749
<span id="input_type_date_datetime_value">@inputTypeDateDateTime</span>
4850
</div>
4951
<div>
50-
DateTimeOffset: <input type="text" id="input_type_date_datetimeoffset_extrainput" @bind="inputTypeDateDateTimeOffset" />
52+
DateTimeOffset: <input type="text" id="input_type_date_datetimeoffset_extrainput" @bind-value="inputTypeDateDateTimeOffset" />
5153
<input type="date" id="input_type_date_datetimeoffset" @bind="inputTypeDateDateTimeOffset" />
5254
<span id="input_type_date_datetimeoffset_value">@inputTypeDateDateTimeOffset</span>
5355
</div>

0 commit comments

Comments
 (0)