Я создал UserControl с ObjectDataSource + ASPxGridView. SelectMethod из ObjectDataSource Я установил динамически в зависимости от общественного параметра UserControl: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;
И если я использую предыдущее заявление, то я вижу только первую партию ASPxGridView UserControl с некоторыми данными, потому что любая манипуляция приведет к ошибке на HtmlRowCreated события из UserControl в ASPxGridView:
Выбрать операция не поддерживается от ObjectDataSource 'dsPersons', если указан параметр SelectMethod.
Почему это происходит?
Спасибо.
Вы не поняли ситуацию правильно: мои методы хорошо работает, когда я установить параметр управления inline или внутри другого gridView (Bind), но он не работает, когда я устанавливаю параметр из кода (C#). Я думаю, что проблема в ASPxGridView и обратный вызов, почему Page_Load игнорируется? –
Я был немного смущен, привязка происходит после загрузки страницы. Параметры по-прежнему установлены в разметке, не так ли? и вы хотите их переопределить? вам, возможно, придется обрабатывать onselect или выбрать или любой метод и построить его самостоятельно, чтобы обойти это. снова, я смутно вспоминаю, но я знаю, что был там не один раз ... –
Хм ...У меня есть настраиваемый элемент управления на странице (ничего больше). UserControl имеет gridView и dataSource с методом select, который зависит от общедоступного параметра управления. Если я установлю этот параметр в разметке, тогда все будет работать нормально, но если я хочу динамически установить этот параметр из кода, я получаю сообщение об ошибке при любых манипуляциях с данными в gridView элемента управления пользователя. –