2010-10-11 72 views
1

任何人都可以告诉我如何在SubSonic 2中扩展开箱即用的脚手架吗?SubSonic:覆盖脚手架

当用户点击保存按钮,这会触发btnSave_Click void,我想根据刚刚更新的记录执行另一个存储过程。

什么是最好的方法?非常感谢。

回答

1

从我在SubSonic 2源代码中看到的情况看,当您触发btnSave_Click时,没有其他功能可以按原样调用。

因此,您需要修改源代码并重新创建subsonic 2 dll(这非常简单)。

因此,如果您修改源代码,只需放置一个保存后运行的函数,然后在您的代码中用您的调用覆盖此函数。

/// <summary> 
    /// Saves the editor. 
    /// </summary> 
    private void SaveEditor() 
    { 
     if(Mode == ScaffoldMode.Edit) 
      UpdateRecord(PrimaryKeyControlValue); 
     else 
      InsertRecord(); 

     SaveManyToMany(); 

     AfterTheSave(); 

     if(ReturnOnSave) 
      BuildWithModeChange(ScaffoldMode.List); 
    } 

    public virtual void AfterTheSave() 
    { 
    }