错误:无法在控制参数'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")