2011-08-01 68 views
0

错误:无法在ControlParameter'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'是只读文本框。它确实在另一页上正常工作。

+0

有一个$符号解决方案,但并不在母版页的工作。 –

回答

0

我自己:如果一个控件嵌入到面板中,只能通过该面板的FindControl方法找到它。它仍然不适合我,我不得不放弃它并使用不同的方法。

使用下面的方法,否则

FindControl("MyControlID") 
0

当sqldatasource正在选择时,请在代码隐藏页面内添加控制参数。你将不得不首先投射控制,然后添加参数值。我假设面板内名为mypanel的文本框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 
+0

谢谢你的回答。现在调查http://forums.asp.net/t/940975.aspx/1?Could+not+find+control+xxx+in+ControlParameter+yyy+。我可以将其转换为C#代码,但现在在.aspx文件中寻找解决方案。 –