我有一个ASP.NET页面,其中包含一个插入数据库的表单。该页面使用向导控件,因为表单相当复杂,有大约80个表单字段,并且需要多个步骤。它不是数据绑定,而是从页面后面的代码中收集和插入数据。我需要创建一个相同的表单来更新记录,因为这个只是插入。设置一个最有效的方法是什么,考虑到我可以重用第一个表单中的代码?我应该使用什么控件?我知道如何在FormView中数据绑定字段进行更新,但同时使用FormView和Wizard控件似乎会很复杂。哪种方法效果最好?
答案 0 :(得分:0)
我只有一个向导,插入和更新。我如何处理这样的情况是创建数据传输对象或重用您正在使用的现有实体。让我们说客户。在page_load事件中检查它是否是对Edit的请求(您可能会传入CustomerID进行编辑),然后从数据库加载对象并将其存储在会话或视图状态中并设置表单视图(将它们绑定到对象)。在向导的最后,检查if Customer.ID>0 then
这是一个更新,否则它是一个插入。如果它不是编辑而Session["CustomerID"] == null
然后Session["Customer"] = new Customer()
并忽略FormView绑定,则在向导的每一步中更新会话中的Customer对象以及最后的perfomr插入。这样你就不必保持两种几乎相同的方法。