До сих пор все примеры, которые вы видели, использовали параметры для передачи значений операции обновления. Однако вы также можете создать параметр для возвращения результата. Эту опцию можно использовать с SqlDataSource, чтобы получить доступ к выходном параметру. С ObjectDataSource можно использовать эту технику для захвата возвращаемого значения. Чтобы увидеть это в действии, стоит рассмотреть метод InsertEmployee(), добавляющий запись о сотруднике и возвращающий вновь сгенерированное уникальное значение ID, как целое число:
public int InsertEmployee(EmpioyeeDetails emp)
{ ... }
Возвращенное identity-значение использовать не обязательно. Как вы уже видели, связанные элементы управления данными привязываются после подтверждения изменений, что гарантирует, что обновляемая информация всегда появляется в связанных элементах управления. Однако вы можете пожелать использовать identity для других целей — например, для отображения подтверждающего сообщения. Чтобы перехватить это identity-значение, необходимо определить параметр:
<asp:ObjectDataSource ID="sourceEmployees" runat="server"
TypeName="DatabaseCompontent.EmployeeDB"
DataObjectTypeName="DatabaseCamponent.EmployeeDetalls"
SelectMethod="GetEmployees"
InsertMethod="InsertEmployee" OnInserted="sourceEmployees_Inserted" >
<InsertParameters>
<asp:Parameter Direction="ReturnValue" Name="EmployeeID" Type="Int32" />
</InsertParameters>
</asp:ObjectDataSource>
После этого вы можете получать параметр, отвечая на событие Inserted, которое происходит сразу после завершения операции вставки:
protected void sourceEmployees_Inserted(object sender,
ObjectDataSoureeStatusEventArgs e)
{
if (e.Exception == null)
{
lblConfirmation.Text = "Inserted record " + e.ReturnValue.ToString();
}
}
Элементы управления источниками данных в целом являются существенным новшеством для разработчиков ASP.NET. Однако вы все еще будете сталкиваться с ситуациями, когда нужно выйти за их границы или даже полностью от них отказаться. В следующем разделе мы покажем, как применять SqlDataSource и ObjectDataSource для того, чтобы справиться с распространенным требованием дизайна — дополнительными опциями в списке типа "главный-подчиненный".
предыдущая следующая страница оглавление
413