ObjectDataSource + ASPxGridView를 사용하여 UserControl을 만들었습니다. 은 ObjectDataSource를의 내가 UserControl을 대중의 매개 변수에 따라이 동적으로 설정하여 SelectMethod :ObjectDataSource -> SelectMethod가 지정되지 않았습니다.
private int _companyID = -1;
public int CompanyID
{
get { return _companyID; }
set
{
_companyID = value;
dsPersons.SelectMethod = "GetPersonsByCompany";
dsPersons.SortParameterName = "sort";
dsPersons.SelectParameters.Clear();
dsPersons.SelectParameters.Add("companyID", DbType.Int32, value.ToString());
}
}
때 나는이 같은 페이지에 내 컨트롤을 사용하여이 같은
<uc:PersonsManager ID="personsManager" runat="server" CompanyID="2" />
또는 다른 ASPxGridView에 넣어 :
<dxwgv:ASPxGridView ID="gridViewCompany" runat="server" DataSourceID="dsCompany" KeyFieldName="ID" Width="100%"
AutoGenerateColumns="false">
<Columns>
<dxwgv:GridViewDataColumn>
<DataItemTemplate>
<uc:PersonsManager ID="personsManager" runat="server" CompanyID='<%# Bind("ID") %>' />
</DataItemTemplate>
</dxwgv:GridViewDataColumn>
</Columns>
</dxwgv:ASPxGridView>
모두 정상적으로 작동하지만 제어 코드를 코드 숨김에서 선언하려고합니다. :
<uc:PersonsManager ID="personsManager" runat="server" />
다음를 Page_Load에서 :
personsManager.CompanyID = 2;
을 그리고 그때 내가 어떤 데이터의 UserControl의 ASPxGridView의 첫 번째로드를 볼 수 있습니다 이전의 선언을 사용하는 경우, 어떤 조작 HtmlRowCreated 이벤트에 오류가 발생할 수 있기 때문에 선택 작업이 ObjectDataSource를 'dsPersons' 을하지 않는 한에 의해 지원되지 않습니다
: UserControl을의 ASPxGridView의 SelectMethod가 지정됩니다.
왜 이런 일이 발생합니까?
감사합니다.
: 나는 제어 매개 변수를 설정할 때 내 방법이 잘 작동 인라인 또는 다른 gridView (Bind) 내부에 있지만 코드 숨김 (C#)에서 매개 변수를 설정하면 작동하지 않습니다. ASPxGridView의 문제와 콜백, 왜 Page_Load가 무시됩니까? –
조금 혼란 스러웠습니다. 페이지로드 후에 바인딩이 발생했습니다. 매개 변수는 여전히 마크 업에 설정되어 있습니다. 맞습니까? 당신은 그들을 무시하고 싶습니까? 당신은 onselect를 다루거나 선택하거나 어떤 방법 으로든 그것을 처리해야 할 수도 있습니다. 다시, 나는 막연하게 회상하고있다. 그러나 나는 한 번 이상 거기에 있었다는 것을 안다. ... –
음 ...나는 페이지 (다른 아무것도)에 사용자 정의 컨트롤이 있습니다. UserControl은 gridView와 dataSource를 가지며, 컨트롤의 public 매개 변수에 따라 select 메소드가 있습니다. 마크 업에서이 매개 변수를 설정하면 모두 정상적으로 작동하지만 코드 숨김에서이 매개 변수를 동적으로 설정하려면 사용자 정의 컨트롤의 gridView에서 데이터를 조작 할 때 오류가 발생합니다. –