У меня есть ASP.NET DetailsView, привязанный к источнику объектных данных (ODS). У меня есть метод для события ODS OnSelecting, и в этом методе на основе полей, возвращаемых из источника данных объекта, мы выполняем еще один поиск в базе данных, чтобы получить значение «Риск» для записи.
Мой вопрос в том, как связать / eval и отобразить это дополнительное поле «Риск», мне было трудно, потому что он не помещает источник данных, привязанный к подробному просмотру.
Я пробовал просто добавить элемент управления Label в DetailsView ItemTemplate, но вы не можете добавить идентификатор к элементу управления, чтобы ссылаться на него в коде позади. Любые идеи?
Обновите здесь код
Вот простой пример кода того, что я пытаюсь сделать
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="ObjectDataSource1">
<Fields>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<div style="float: right">
<asp:Label runat="server" Text="NEED RISK HERE"></asp:Label>
</div>
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="ButtonUpdate" runat="server" CausesValidation="True" CommandName="Update"
Text="Update" />
<asp:Button ID="ButtonCancelUpdates" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancel" />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
<br />
<br />
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OnSelecting="ods1_Selecting"
SelectMethod="GetMemoryDataTable" TypeName="AspMemoryDatatableDemo.MemoryDataTableProvider">
</asp:ObjectDataSource>
Код позади
public String GetRisk()
{
return "HIGH";
}
protected void ods1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
// Get Risk based on row data
// Need some way of showing this in the DetailsView
GetRisk();
}
Набор данных фактически будет поступать из объекта данных, но в этом примере я просто использую данные в памяти.