Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.2k views
in Technique[技术] by (71.8m points)

c# - .Net5 FocusAsync() not compiling

I am new to and playing with MS Blazor on the new .Net5 framework. I am attempting to set the focus of a text element when a button is clicked. I have seen this code elsewhere and trying to get it to compile:

<button @onclick="() => textInput.FocusAsync()">Set focus</button><input @ref="textInput"/>

VS2019 is throwing an error on the textInput value: The name 'textInput' does not exist in the current context.

Any help is appreciated.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

In your @code section you need to create a property/variable called textInput which is of type ElementReference. There's then an extension method on ElementReference that's in the Microsoft.AspNetCore.Components namespace called FocusAsync which you should be able to call.

<button @onclick="() => textInput.FocusAsync()">Set focus</button><input @ref="textInput"/>

@code {
   private ElementReference textInput;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...