DBNavigator1的"+"號代表AdoDataSet的哪個事件?
我識了一下,不是AdoDataSet.Insert事件。因為在主從結構中,用ltBatchOptimistic,用按鈕實現AdoDataSet.Insert
和用DBNavigator1的"+"不同。用按鈕實現AdoDataSet.Insert雖然可以在UpdateBatch時保存數據,但insert的紀錄只有1條顯示在dbgrid中,而用DBNavigator1的"+"就可以把所有添加的從表紀錄顯示在dbgrid中出來。

解决方案 »

  1.   

    自己可以看看代碼:procedure TDBNavigator.BtnClick(Index: TNavigateBtn);
    begin
      if (DataSource <> nil) and (DataSource.State <> dsInactive) then
      begin
        if not (csDesigning in ComponentState) and Assigned(FBeforeAction) then
          FBeforeAction(Self, Index);
        with DataSource.DataSet do
        begin
          case Index of
            nbPrior: Prior;
            nbNext: Next;
            nbFirst: First;
            nbLast: Last;
            nbInsert: Insert;
            nbEdit: Edit;
            nbCancel: Cancel;
            nbPost: Post;
            nbRefresh: Refresh;
            nbDelete:
              if not FConfirmDelete or
                (MessageDlg(SDeleteRecordQuestion, mtConfirmation,
                mbOKCancel, 0) <> idCancel) then Delete;
          end;
        end;
      end;
      if not (csDesigning in ComponentState) and Assigned(FOnNavClick) then
        FOnNavClick(Self, Index);
    end;由此可以看出:“+”就是調用了DataSet.Insert的方法--------------------------------
    如果我的說法對你有幫助,請您也幫我一個忙:
    詳情請見:
    http://community.csdn.net/Expert/topic/4598/4598070.xml?temp=.1748011