Веб-формы ASP.net - доступ к элементам управления - PullRequest
0 голосов
/ 29 августа 2018

Моя проблема:

У меня есть веб-страница, которая выглядит примерно так:

     <asp:PlaceHolder ID="Formular" runat="server">
<table>
<tr runat="server" visible="true" id="1">
<td>  <asp:TextBox ID="TextBox13" runat="server" AutoPostBack="true" OnTextChanged="tb_Changed" CssClass="tx"></asp:TextBox>
</td>
</table>
    </asp:PlaceHolder>

Теперь я хочу просмотреть все элементы управления на веб-странице, но, конечно, я не могу получить доступ к этому TextBox13 с помощью этого кода:

Dim tb as TextBox
For Each ctrl In Formular.Controls
            If TypeOf ctrl Is TextBox Then
                tb = ctrl
                If tb.Text.Trim.Length = 0 Then
                    tb.Style("background-color") = "red"
                    count += count + 1
                Else
                    tb.Style("background-color") = "white"
                End If
            End If
        Next

Есть ли какой-нибудь элегантный простой способ получить доступ к этому текстовому полю?

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

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете получить доступ к объекту текстового поля:

Dim szTextbox As String = Left(Request.Form("TextBox13"), 50) для получения содержимого в виде строки

TextBox13.Text для получения и установки строки в элементе управления textbox

Обновление

На основе поиска конкретного текстового поля.

Рекурсивно пролистать страницу и найти текстовое поле на основе идентификатора:

Public Function FindControlRecursive(Of ItemType)(ByVal Ctrl As Object, ByVal id As String) As ItemType
     If String.Compare(Ctrl.ID, id, StringComparison.OrdinalIgnoreCase) = 0 AndAlso TypeOf Ctrl Is ItemType Then
          Return CType(Ctrl, ItemType)
     End If

     For Each c As Control In Ctrl.Controls
          Dim t As ItemType = FindControlRecursive(Of ItemType)(c, id)

          If t IsNot Nothing Then
               Return t
          End If
     Next

     Return Nothing
End Function

Код от: Цикл по текстовым полям и меткам

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