错误:无法在ControlParameter'mycontrolparam'中找到控件'mytextfield'。
<asp:ControlParameter ControlID="mytextfield" Name="mycontrolparam" PropertyName="Text" Type="Int32" />
错误是因为“mytextfield”在面板控件中,我需要FindControl方法才能找到它。但我想找到一个快速解决方案,如果有的话,如何使mytextfield对控件参数可见。相同的代码适用于不同的页面,但不适用于此页面。请记住,我想对现有代码进行最少的更改。
以下是我从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'是一个只读文本字段。它在其他页面上确实可以正常工作。
答案 0 :(得分:0)
当sqldatasource选择时,请在代码隐藏页面中添加控制参数。您必须首先转换控件然后添加参数值。我假设在名为mypanel的面板内的textbox xyz控件。
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
答案 1 :(得分:0)
我自己:如果控件嵌入在面板中,则只能通过该面板的FindControl方法找到它。它实际上对我不起作用,我不得不放弃它并使用不同的方法。
否则使用以下方法
FindControl("MyControlID")