Я создал UserControl с ObjectDataSource + ASPxGridView. SelectMethod из ObjectDataSource Я устанавливаю динамически в зависимости от публичного параметра UserControl:
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;
И если я использую предыдущее объявление, то вижу только первую загрузку ASPxGridView UserControl с некоторыми данными, потому что любая манипуляция вызовет ошибку при событии HtmlRowCreated ASPxGridView UserControl:
Операция выбора не поддерживается
ObjectDataSource 'dsPersons', если
указан метод выбора.
Почему это происходит?
Спасибо.