没有找到控制参数



错误:无法在控制参数'mycontrolparam'中找到控制'mytextfield' .

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

错误是因为"mytextfield"在面板控件内,我需要FindControl方法来找到它。但我想找到一个快速的解决方案,如果有任何,如何使mytextfield可见的控制参数。相同的代码可以在不同的页面上工作,但不能在这个页面上工作。请记住,我想对现有代码进行最小的更改。

下面是我从微软网站上复制过来的类似代码。

<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'是一个只读文本字段。但是在另一个页面上它可以正常工作

当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

Myself:如果控件嵌入到面板中,您只能通过该面板的FindControl方法找到它。它实际上仍然对我不起作用,我不得不放弃它,使用另一种方法。

请使用以下方法,否则

FindControl("MyControlID")

最新更新