parent
e520468d3c
commit
de91125593
|
|
@ -54,22 +54,6 @@ namespace Microsoft.AspNetCore.Components
|
|||
public static string GetEventHandlerValue<T>(string value) where T : Microsoft.AspNetCore.Components.UIEventArgs { throw null; }
|
||||
public static string GetValue(System.DateTime value, string format) { throw null; }
|
||||
public static T GetValue<T>(T value) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<bool> setter, bool existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<System.DateTime> setter, System.DateTime existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<System.DateTime> setter, System.DateTime existingValue, string format) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<decimal> setter, decimal existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<double> setter, double existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<int> setter, int existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<long> setter, long existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<bool?> setter, bool? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<decimal?> setter, decimal? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<double?> setter, double? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<int?> setter, int? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<long?> setter, long? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<float?> setter, float? existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<float> setter, float existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler(System.Action<string> setter, string existingValue) { throw null; }
|
||||
public static System.Action<Microsoft.AspNetCore.Components.UIEventArgs> SetValueHandler<T>(System.Action<T> setter, T existingValue) { throw null; }
|
||||
}
|
||||
[System.AttributeUsageAttribute(System.AttributeTargets.Property, AllowMultiple=false, Inherited=true)]
|
||||
public sealed partial class CascadingParameterAttribute : System.Attribute
|
||||
|
|
|
|||
|
|
@ -86,229 +86,5 @@ namespace Microsoft.AspNetCore.Components
|
|||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<string> setter, string existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter((string)((UIChangeEventArgs)eventArgs).Value);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<bool> setter, bool existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter((bool)((UIChangeEventArgs)eventArgs).Value);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<bool?> setter, bool? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter((bool?)((UIChangeEventArgs)eventArgs).Value);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<int> setter, int existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(int.Parse((string)((UIChangeEventArgs)eventArgs).Value));
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<int?> setter, int? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(int.TryParse((string)((UIChangeEventArgs)eventArgs).Value, out var value) ? value : (int?)null);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<long> setter, long existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(long.Parse((string)((UIChangeEventArgs)eventArgs).Value));
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<long?> setter, long? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(long.TryParse((string)((UIChangeEventArgs)eventArgs).Value, out var value) ? value : (long?)null);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<float> setter, float existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(float.Parse((string)((UIChangeEventArgs)eventArgs).Value));
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<float?> setter, float? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(float.TryParse((string)((UIChangeEventArgs)eventArgs).Value, out var value) ? value : (float?)null);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<double> setter, double existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(double.Parse((string)((UIChangeEventArgs)eventArgs).Value));
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<double?> setter, double? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(double.TryParse((string)((UIChangeEventArgs)eventArgs).Value, out var value) ? value : (double?)null);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<decimal> setter, decimal existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(decimal.Parse((string)((UIChangeEventArgs)eventArgs).Value));
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<decimal?> setter, decimal? existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
setter(decimal.TryParse((string)((UIChangeEventArgs)eventArgs).Value, out var tmpvalue) ? tmpvalue : (decimal?)null);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<DateTime> setter, DateTime existingValue)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
SetDateTimeValue(setter, ((UIChangeEventArgs)eventArgs).Value, null);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler(Action<DateTime> setter, DateTime existingValue, string format)
|
||||
{
|
||||
return eventArgs =>
|
||||
{
|
||||
SetDateTimeValue(setter, ((UIChangeEventArgs)eventArgs).Value, format);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Not intended to be used directly.
|
||||
/// </summary>
|
||||
public static Action<UIEventArgs> SetValueHandler<T>(Action<T> setter, T existingValue)
|
||||
{
|
||||
if (!typeof(T).IsEnum)
|
||||
{
|
||||
throw new ArgumentException($"'bind' does not accept values of type {typeof(T).FullName}. To read and write this value type, wrap it in a property of type string with suitable getters and setters.");
|
||||
}
|
||||
|
||||
return eventArgs =>
|
||||
{
|
||||
var value = (string)((UIChangeEventArgs)eventArgs).Value;
|
||||
var parsed = (T)Enum.Parse(typeof(T), value);
|
||||
setter(parsed);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
};
|
||||
}
|
||||
|
||||
private static void SetDateTimeValue(Action<DateTime> setter, object objValue, string format)
|
||||
{
|
||||
var stringValue = (string)objValue;
|
||||
var parsedValue = string.IsNullOrEmpty(stringValue) ? default
|
||||
: format != null && DateTime.TryParseExact(stringValue, format, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var parsedExact) ? parsedExact
|
||||
: DateTime.Parse(stringValue);
|
||||
setter(parsedValue);
|
||||
_ = DispatchEventAsync(setter.Target, EventCallbackWorkItem.Empty, UIEventArgs.Empty);
|
||||
}
|
||||
|
||||
// This is a temporary polyfill for these old-style bind methods until they can be removed.
|
||||
// This doesn't do proper error handling (usage is fire-and-forget).
|
||||
private static Task DispatchEventAsync(object component, EventCallbackWorkItem callback, object arg)
|
||||
{
|
||||
if (component == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(component));
|
||||
}
|
||||
|
||||
if (component is IHandleEvent handler)
|
||||
{
|
||||
return handler.HandleEventAsync(callback, arg);
|
||||
}
|
||||
|
||||
return callback.InvokeAsync(arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(3, "id", Id);
|
||||
builder.AddAttribute(4, "class", CssClass);
|
||||
builder.AddAttribute(5, "checked", BindMethods.GetValue(CurrentValue));
|
||||
builder.AddAttribute(6, "onchange", BindMethods.SetValueHandler(__value => CurrentValue = __value, CurrentValue));
|
||||
builder.AddAttribute(6, "onchange", EventCallback.Factory.CreateBinder<bool>(this, __value => CurrentValue = __value, CurrentValue));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(3, "id", Id);
|
||||
builder.AddAttribute(4, "class", CssClass);
|
||||
builder.AddAttribute(5, "value", BindMethods.GetValue(CurrentValueAsString));
|
||||
builder.AddAttribute(6, "onchange", BindMethods.SetValueHandler(__value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.AddAttribute(6, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(4, "id", Id);
|
||||
builder.AddAttribute(5, "class", CssClass);
|
||||
builder.AddAttribute(6, "value", BindMethods.GetValue(CurrentValueAsString));
|
||||
builder.AddAttribute(7, "onchange", BindMethods.SetValueHandler(__value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.AddAttribute(7, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(2, "id", Id);
|
||||
builder.AddAttribute(3, "class", CssClass);
|
||||
builder.AddAttribute(4, "value", BindMethods.GetValue(CurrentValueAsString));
|
||||
builder.AddAttribute(5, "onchange", BindMethods.SetValueHandler(__value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.AddAttribute(5, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.AddContent(6, ChildContent);
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(2, "id", Id);
|
||||
builder.AddAttribute(3, "class", CssClass);
|
||||
builder.AddAttribute(4, "value", BindMethods.GetValue(CurrentValue));
|
||||
builder.AddAttribute(5, "onchange", BindMethods.SetValueHandler(__value => CurrentValue = __value, CurrentValue));
|
||||
builder.AddAttribute(5, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
builder.AddAttribute(2, "id", Id);
|
||||
builder.AddAttribute(3, "class", CssClass);
|
||||
builder.AddAttribute(4, "value", BindMethods.GetValue(CurrentValue));
|
||||
builder.AddAttribute(5, "onchange", BindMethods.SetValueHandler(__value => CurrentValue = __value, CurrentValue));
|
||||
builder.AddAttribute(5, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3684,11 +3684,11 @@ namespace Microsoft.AspNetCore.Components.Test
|
|||
builder.OpenElement(0, "input");
|
||||
builder.AddAttribute(1, "type", "checkbox");
|
||||
builder.AddAttribute(2, "value", BindMethods.GetValue(CheckboxEnabled));
|
||||
builder.AddAttribute(3, "onchange", BindMethods.SetValueHandler(__value => CheckboxEnabled = __value, CheckboxEnabled));
|
||||
builder.AddAttribute(3, "onchange", EventCallback.Factory.CreateBinder<bool>(this, __value => CheckboxEnabled = __value, CheckboxEnabled));
|
||||
builder.CloseElement();
|
||||
builder.OpenElement(4, "input");
|
||||
builder.AddAttribute(5, "value", BindMethods.GetValue(SomeStringProperty));
|
||||
builder.AddAttribute(6, "onchange", BindMethods.SetValueHandler(__value => SomeStringProperty = __value, SomeStringProperty));
|
||||
builder.AddAttribute(6, "onchange", EventCallback.Factory.CreateBinder<string>(this, __value => SomeStringProperty = __value, SomeStringProperty));
|
||||
builder.AddAttribute(7, "disabled", !CheckboxEnabled);
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,14 +72,6 @@ namespace TestServer
|
|||
});
|
||||
});
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.MapControllers();
|
||||
endpoints.MapRazorPages();
|
||||
});
|
||||
|
||||
// Separately, mount a prerendered server-side Blazor app on /prerendered
|
||||
app.Map("/prerendered", subdirApp =>
|
||||
{
|
||||
|
|
@ -92,6 +84,14 @@ namespace TestServer
|
|||
endpoints.MapBlazorHub();
|
||||
});
|
||||
});
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.MapControllers();
|
||||
endpoints.MapRazorPages();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue