2011-08-01 69 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文件中尋找解決方案。 –