代码之家  ›  专栏  ›  技术社区  ›  thardes2

asp.net ObjectDataSource从代码隐藏更新

  •  0
  • thardes2  · 技术社区  · 11 年前

    我有一个ASP.NET应用程序,在一个页面上有一个gridview,它使用ObjectDataSource来调用位于另一个名为“Device”的类中的方法。这个类返回一个speciala数据表。这是有效的。

    现在我需要一个更新数据的方法,为此我不能使用类Device,所以我想从后面的代码中使用该网格的“RowUpdating”方法。我甚至为这个方法编写了代码,如果用户单击网格中的“更新”按钮,它就会工作,方法就会启动。

    现在来谈谈问题。因为我正在使用ObjectDataSource,并且我在该网格中有一个Update命令,所以我还需要为此ObjectDataSource指定和Update方法,这就是重点。 我想使用代码隐藏中的RowUpdating方法,而不是ObjectDataSource中的update方法。我目前的解决方案是类“Device”中的一个方法,它只需通过“return”命令返回,因此我的代码后面的RowUpdating正在完成任务。。。但这并不是“唯一的运作方式”。

    如能提供帮助和进一步提示,我们将不胜感激。 非常感谢。

    1 回复  |  直到 11 年前
        1
  •  0
  •   dvjanm    11 年前

    如果使用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>