История: У нас есть 3 разных стола. TimeReport, Досье, BU Первый подключен ко второму, одному ко многим. Второй подключен к третьему, одному ко многим. Фильтрация неисправностей Сетка
Мы хотели использовать радиоизлучающий компонент для отображения «TimeReports». Мы построили фильтры, например, для «DossierId» и отобразили свойство «Описание». Это прекрасно работает.
Наша проблема заключается в том, что мы хотим отображать и фильтровать, например, BU.BUId и BU.Code. Мы пробовали это несколько способов, с помощью java-скрипта или кода. К сожалению, это не сработает. Проблема заключается в том, что мы хотим получить доступ к свойствам поверх двух таблиц. (От 'TimeReport' над 'досье' к 'BU')
<telerik:GridBoundColumn DataField="Dossier.BU.Code" FilterControlAltText="Filter BUId column"
HeaderText="BU" SortExpression="BUId" UniqueName="BUId">
<FilterTemplate>
<telerik:RadComboBox ID="RadComboBoxTitle" DataSourceID="dsBU" DataTextField="Code"
DataValueField="BUId" AppendDataBoundItems="true" AutoPostBack="true"
OnPreRender="RadComboBoxTitle_PreRender"
runat="server" OnSelectedIndexChanged="RadComboBoxTitle_SelectedIndexChanged">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
</FilterTemplate>
</telerik:GridBoundColumn>
код позади
protected void RadComboBoxTitle_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
RadComboBox buCombo = sender as RadComboBox;
ViewState["buComboValue"] = buCombo.SelectedValue;
TimeReportGrid.MasterTableView.FilterExpression = "(it.[Dossier.BUId] = " + buCombo.SelectedValue + ")";
GridColumn column = TimeReportGrid.MasterTableView.GetColumnSafe("BUId");
column.CurrentFilterFunction = GridKnownFunction.EqualTo;
column.CurrentFilterValue = buCombo.SelectedValue;
TimeReportGrid.Rebind();
}
protected void RadComboBoxTitle_PreRender(object sender, EventArgs e)
{
if (ViewState["buComboValue"] != null)
{
RadComboBox buCombo = sender as RadComboBox;
buCombo.SelectedValue = ViewState["buComboValue"].ToString();
}
}
Этот код выдает ошибку на "TimeReportGrid.Rebind()".
'Dossier.BUId' не является членом типа Model.TimeReport в загружаемых в настоящее время схемах. Вблизи экранированного идентификатора, строка 6, столбец 5.
Не стесняйтесь задавать вопросы в случае необходимости.
Благодарим за помощь и быстрый ответ.