在李维的D5分部式多层应用电子商务篇中的P222页。就是5-4的'融合WebBroker和InternetExpress'章节。由于需要动态加入勾选盒,要用Object Pascal来建立。为了将勾选盒的内容传到Web服务器,在TMIDASPageProducer组件中加入QueryForm1,并将QueryForm1的Custom属性设为<#Seminars>。这时查看TMIDASPageProducer的html发现了定制标识符<#Seminars>内容如下:
<form name=QueryForm1 action="/Scripts/PCh05CGISeminars.exel/JoinSeminar" method=POST <#Seminars>>
    但是实际运行并没有产生带有勾选盒的表单。使用IntraBob调试,并没有触发定制标识符。如果没当成标识符就会当成普通的字符显示在网页中,在产生的html代码中也没有<#Seminars>。已经使用了间接方法,触发OnHTMLTag事件。我该怎样作??  谢谢!!

解决方案 »

  1.   

    TPageHTML = class (TObject)
          public
            constructor Create() ; overload;
            destructor Destroy() ; override;
            procedure PageProducerOutputHTMLTag(Sender: TObject; Tag: TTag;
              const TagString: String; TagParams: TStrings;
              var ReplaceText: String);
        end;constructor TPageHTML.Create;
    begin
      inherited Create;end;destructor TPageHTML.Destroy;
    begin
      inherited Destroy;end;procedure TPageHTML.PageProducerOutputHTMLTag(Sender: TObject; Tag: TTag;
      const TagString: String; TagParams: TStrings; var ReplaceText: String);
    begin
      case Tag  of
        tgCustom:
          begin
            if TagString = 'xxxxx' then  xxxxxx;
           end;
      end;
    end;
      

  2.   

    我是这样写的:
    if (Tag=tgCustom) and (CompareText(TagString,'Seminars')=0) then
       begin
       ......
       end;
    也没错吧.
      

  3.   

    就是把标识符写到QueryForm1的Custom中,而不是事先写到网页里。