контрольный параметр не найден - PullRequest
0 голосов
/ 01 августа 2011

Ошибка: не удалось найти элемент управления «mytextfield» в ControlParameter «mycontrolparam».

<asp:ControlParameter ControlID="mytextfield" Name="mycontrolparam" PropertyName="Text" Type="Int32" />

Ошибка в том, что «mytextfield» находится внутри панели управления, и мне нужен метод FindControl, чтобы найти его. Но я хочу найти быстрое решение, если оно есть, как сделать поле mytext видимым для параметра управления. Тот же код работает на другой странице, но не на этой. Пожалуйста, имейте в виду, я хочу внести минимальные изменения в существующий код.

Вот аналогичный код, который я скопировал с сайта Microsoft.

<asp:SqlDataSource id="Employees" runat="server"
  ConnectionString="<%$ ConnectionStrings:Northwind%>"
  SelectCommand="SELECT LastName FROM Employees WHERE Title = @Title">
  <SelectParameters>
    <asp:ControlParameter Name="Title" 
      ControlID="DropDownList1"
      PropertyName="SelectedValue"/>
  </SelectParameters>
</asp:sqldatasource>

Хочу упомянуть: «mytextfield» - текстовое поле только для чтения. На другой странице все работает нормально.

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Сам: если элемент управления встроен в панель, вы можете найти его только с помощью метода FindControl этой панели.Это все еще фактически не работало для меня, и мне пришлось отказаться от него и использовать другой метод.

В противном случае используйте следующий метод

FindControl("MyControlID")
0 голосов
/ 01 августа 2011

Пожалуйста, добавьте управляющий параметр внутри вашей страницы кода, когда выбирается sqldatasource. Сначала вам нужно будет наложить управление, а затем добавить значение параметра. Я принял текстовое поле XYZ управления внутри панели с именем mypanel.

Protected Sub Employees_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles Employees.Selecting
            Dim xyz As TextBox = DirectCast(mypanel.findcontrol("yourcontrolname"), TextBox)
            Dim mycontrolparam = New SqlParameter("@mycontrolparam",xyz.text)
            e.Command.Parameters.Add(mycontrolparam)
        End Sub
...