打印本文 打印本文 关闭窗口 关闭窗口
Web Application 開 發 利 器 - WebSnap(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2960  更新时间:2009/4/23 18:41:24  文章录入:mintao  责任编辑:mintao
Result := TEdit(WebContext.FindModuleClass(TEdit));

 end;

procedure TEdit.WebPageModuleBeforeDispatchPage(Sender: TObject;

                          const PageName: String; var Handled: Boolean);

    procedure RedirectToGrid;

     var

      Intf1:IPageDispatcher;

      AppModule:TObject;

      GetAppService:IGetWebAppServices;

      AppService:IWebAppServices;

      AppComponents:IGetWebAppComponents;

     begin

      if Supports(WebContext.FindApplicationModule(Self),IGetWebAppServices,GetAppService) then

        begin

         AppService:=GetAppService.GetWebAppServices;

         if Supports(AppService,IGetWebAppComponents,AppComponents) then

          begin

            Intf1:=AppComponents.GetPageDispatcher;

            Intf1.DispatchPageName(''''Grid'''',Response,[dpPublished]);

            Handled:=True;

          end;

         end;

      end;

 var

    Intf:IActionFieldValues;

  begin

    if Supports(WebContext.AdapterRequest,IActionFieldValues,Intf) then

       begin

         if VarIsEmpty(Intf.ValueOfField(''''EnterCustNo'''')) then

           RedirectToGrid;

         end

         else RedirectToGrid;

      end;

  end;

 

 

或 者 是 你 也 可 以 使 用 WebDisp Unit 中 的 這 兩 個 函 式 來 做 轉 向 的 動 作 :

 

function DispatchPageName(const APageName: string; AResponse: TWebResponse;

                                                  AFlags: TDispatchPageFlags): Boolean;

function RedirectToPageName(const APageName: string; AParams: TStrings; AResponse: TWebResponse;

                                              AFlags: TDispatchPageFlags): Boolean;

 

這 兩 個 函 式 都 能 夠 正 常 的 重 新 導 向 網 頁 , 最 明 顯 的 差 別 是 使 用 RedirectToPageName 函 式 時 , 我 們 可 以 將 參 數 值 傳 到 目 標 Page Module 的 DefaultAction 中 , 再 藉 由 參 數 值 來 做 出 正 確 的 反 應 , 也 就 是 說 她 會 觸 發 目 標 Page Module 中 的 DefaultAction 事 件 。 DispatchPageName 則 沒 有 , 從 動 作 的 模 式 上 來 比 較 的 話 , RedirectToPageName 是 一 個 外 部 動 作 , 這 個 意 思 是 說 她 是 經 由 瀏 覽 器 來 轉 向 , DispatchPageName 則 是 一 個 內 部 轉 向 動 作 。 當 你 需 要 單 純 的 轉 向 時 , 你 可 以 使 用 DispatchPageName , 當 你 需 要 轉 向 並 觸 發 該 Page Module 中 的 DefaultAction 時 , 你 可 以 選 擇 RedirectToPageName 。 另 外 如 果 你 轉 向 的 網 頁 不 在 程 式 中 , 也 就 是 說 是 一 個 URL 時 , 那 你 可 以 使 用 SafeRedirect , 這 個 函 式 可 以 在 網 頁 轉 向 後 將 Cookie 送 給 目 標 網 頁 。

  

本 章 後 記

 

  如 同 在 第 一 節 所 講 的 , 用 WebSnap 來 開 發 網 頁 資 料 庫 程 式 並 不 困 難 , 最 重 要 的 是 她 延 續 了 我 們 之 前 開 發 資 料 庫 程 式 的 慨 念 , 讓 我 們 的 學 習 曲 線 較 為 平 穩 。 當 然 ! 這 一 章 只 是 個 開 始 , 下 面 我 們 會 陸 續 介 紹 其 它 重 要 的 課 題 。

 

<第 四 章 、 進 階 資 料 庫 網 頁 設 計>



上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口