Изменить регистр в веб-формах ASP.NET только для выделенного текста

У меня небольшая проблема с изменением регистра в веб-формах ASP.NET. То, что у меня есть в моем коде, преобразует весь введенный текст в верхний регистр, я хочу преобразовать только часть текста. Например, если я ввожу John Doe, приведенный ниже код преобразует его в JOHN DOE. Мне нужен результат, когда я выбираю только Джона, чтобы вернуть ДЖОНА Доу, это должно работать так же, как текстовый редактор. Если кто-нибудь знает, можно ли это сделать в веб-формах ASP.NET, я был бы очень признателен. Заранее спасибо.

<asp:TextBox ID = "TextBox1" runat = "server"></asp:TextBox>
<asp:Button ID = "Button1" runat = "server" Text = "UpperCase" OnClick = "Button1_Click" />

protected void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Style.Add("text-transform", "uppercase");
    }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
123
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку у вас есть щелчок кнопки, и вы можете (мы предполагаем) запустить код, это будет работать:

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text != "")
        {
            string[] sParts = TextBox1.Text.Split(' ');
            sParts[0] = sParts[0].ToUpper();
            TextBox1.Text = string.Join(" ",sParts);
        }
    }

Итак, выше приводит текст к первому найденному месту. Преобразует в верхний регистр, а затем помещает результаты обратно в текстовое поле.

К вашему сведению: для этого требуется использование одинарных и двойных кавычек, как указано выше.

Обновлено: преобразовать выделенный текст в верхний регистр.

Итак, мы хотим позволить пользователю выбрать текст в поле, а затем преобразовать его в верхний регистр.

Итак, скажем, мы бросаем текстовое поле - давайте перейдем к многострочному и позволим пользователю ввести какой-либо текст и выбрать какой-либо текст, а затем преобразовать выделенный текст в верхний регистр.

Таким образом, эта разметка:

        <asp:TextBox ID = "TextBox1" runat = "server" TextMode = "MultiLine" 
            Height = "238px" Width = "492px" ClientIDMode = "Static"  >
        </asp:TextBox>
        <br />
        <br />
        <asp:Button ID = "cmdUpper" runat = "server" Text = "Convert selected text to uppper"
            CssClass = "btn"
            OnClientClick = "MyUpper();return false" />

        <script>
            function MyUpper() {

                tBox = $('#TextBox1')
                selStart = tBox[0].selectionStart - 1
                selEnd = tBox[0].selectionEnd
                myUpper = tBox.val().substring(selStart, selEnd)
                myUpper = myUpper.toUpperCase()

                myResult = tBox.val().substring(0, selStart) + myUpper +
                    tBox.val().substring(selEnd)

                tBox.val(myResult)
            }
        </script>

Итак, теперь мы можем выделить текст и нажать кнопку, он преобразует текст в верхний регистр.

Например это:

Я, конечно, предполагал, что jQuery доступен.

@albert-d-kallal спасибо, но это преобразует только первое слово. Мне нужно, чтобы он работал так же, как MS Word, преобразование должно производиться только на выделенном тексте с моим курсором. Например, в john smith, если я выберу только "smith" при щелчке, он должен вернуть john SMITH

Lindsay 13.10.2022 09:53

Хм, хорошо, выделенный текст становится невыделенным, когда происходит кнопка + обратная передача. Это говорит о том, что такой код должен быть на стороне клиента (Javascript). Напряженный день, но я рассмотрю это позже сегодня или завтра и придумаю решение для выделенного текста.

Albert D. Kallal 14.10.2022 16:05

@albert-d-kallal jsfiddle.net/TrueBlueAussie/8syb2d8j/4 это именно то, что мне нужно и когда я вставляю его в свой проект, он работает, но при каждом нажатии на кнопку страница обновляется и никаких изменений в верхний регистр сохраняется. Я пробовал с панелью обновления, но она не работает, так как она находится на стороне клиента, а не на сервере.

Lindsay 14.10.2022 16:43

см. мою правку. Мы могли бы сделать это на стороне клиента, но поскольку мы выбираем текст, это лучше делать на стороне клиента. См. выше часть 2.

Albert D. Kallal 16.10.2022 00:34

Другие вопросы по теме