2011-08-01 12 views
0

오류 : 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

나만의 경우 : 컨트롤이 패널 안에 포함되어 있으면 해당 패널의 FindControl 메서드를 통해서만 컨트롤을 찾을 수 있습니다. 그것은 여전히 ​​실제로 나를 위해 작동하지 않았고 나는 그것을 포기하고 다른 방법을 사용해야했습니다.

는 다음과 같은 방법을 달리

FindControl("MyControlID") 
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 
+0

해답을 가져 주셔서 감사합니다. 지금 http://forums.asp.net/t/940975.aspx/1?Could+not+find+control+xxx+in+ControlParameter+yyy+를 조사하십시오. C# 코드로 변환 할 수 있지만 .aspx 파일에서 솔루션을 찾고 있습니다. –

관련 문제