2013-10-11 6 views
0

У меня есть приложение ASP.NET, и на одной странице есть gridview, который использует объект ObjectDataSource для вызова метода, который находится в другом классе с именем «Устройство». Ну, этот класс возвращает спецификацию datatable. Это работает.asp.net ObjectDataSource Обновление от кода позади

Теперь мне нужен способ для обновления данных, и для этого я не могу использовать устройство класса, поэтому я хотел бы использовать метод «RowUpdating» этой сетки из кода позади. Я даже написал код для этого метода, и он работает, и метод срабатывает, если пользователь нажимает кнопку «Обновить» в сетке.

Теперь проблема. Поскольку я использую ObjectDataSource, и у меня есть команда Update в этой сетке, мне также нужно указать и Update-method для этого объекта ObjectDataSource, и это точка. Я хочу использовать метод RowUpdating из моего кода, а не метод обновления из этого объекта ObjectDataSource. Мое текущее решение - это метод в классе «Устройство», который просто возвращается с помощью команды «return», поэтому RowUpdating из моего кода позади выполняет эту работу ... но это не может быть «единственным способом, как это работает».

Помощь и дальнейшие советы были бы признательны. Спасибо!

ответ

0

Если вы используете ObjectDataSource, вам нужно написать обновление и выбрать метод в одном классе. Возможно, вам нужно написать класс непосредственно для этого GridView, чтобы делегировать обновление и выбирать методы для других объектов.

Я думаю, что было бы полезно для вас:

[DataObject(true)] 
public class SomeService 
{ 
    private Device d; 
    private YourUpdaterClass yuc; 

    public SomeService() 
    { 
     this.d = new Device(); 
     this.yuc = new YourUpdaterClass(); 
    } 

    [DataObjectMethod(DataObjectMethodType.Select, true)] 
    public List<YourType> Select() 
    { 
     return d.YourSelectMethod(); 
    } 

    [DataObjectMethod(DataObjectMethodType.Update, true)] 
    public void Update(YourType yt) 
    { 
     yuc.YourUpdateMethod(yt); 
    } 
} 

И ObjectDataSource:

<asp:ObjectDataSource 
    ID="ObjectDataSource1" 
    runat="server" 
    SelectMethod="Select" 
    TypeName="SomeService" 
    DataObjectTypeName="YourType" 
    UpdateMethod="Update"> 
</asp:ObjectDataSource> 
+0

Hm Благодарю Вас за ответ, но это не представляется возможным использовать Update-Событие сетка? С решением, которое вы представили, я мог бы решить свою проблему, но для этого потребовались бы некоторые изменения в моей архитектуре – thardes2

Смежные вопросы