diff --git a/packages/fcl-web/src/fphtml.pp b/packages/fcl-web/src/fphtml.pp
index 117bccb5a4..ca943988f9 100644
--- a/packages/fcl-web/src/fphtml.pp
+++ b/packages/fcl-web/src/fphtml.pp
@@ -281,6 +281,8 @@ type
THTMLCustomDatasetContentProducer = class (THTMLContentProducer)
private
FDatasource: TDatasource;
+ FOnChange: THandleAjaxEvent;
+ FOnChangeCS: TCSAjaxEvent;
FOnWriteFooter: TWriterEvent;
FOnWriteHeader: TWriterElementEvent;
FOnWriteRecord: TWriterEvent;
@@ -291,6 +293,8 @@ type
procedure DoWriteHeader (aWriter : THTMLWriter; var el : THTMLCustomElement); virtual;
procedure DoWriteFooter (aWriter : THTMLWriter); virtual;
procedure DoWriteRecord (aWriter : THTMLWriter); virtual;
+ function GetEvents: TEventRecords; override;
+ procedure HandleAjaxRequest(ARequest: TRequest; AnAjaxResponse: TAjaxResponse); override;
public
function WriteContent (aWriter : THTMLWriter) : THTMLCustomElement; override;
Property OnWriteHeader : TWriterElementEvent read FOnWriteHeader write FOnWriteHeader;
@@ -298,6 +302,8 @@ type
Property OnWriteRecord : TWriterEvent read FOnWriteRecord write FOnWriteRecord;
published
Property DataSource : TDataSource read FDataSource write FDataSource;
+ property OnChangeCS: TCSAjaxEvent read FOnChangeCS write FOnChangeCS;
+ property OnChange: THandleAjaxEvent read FOnChange write FOnChange;
end;
{ THTMLDatasetContentProducer }
@@ -420,6 +426,9 @@ type
const SimpleOkButton: array[0..0] of TWebButton = ((buttontype: btok;caption: 'Ok';onclick: ''));
+const jseButtonClick = 1000;
+ jseInputChange = 1001;
+
implementation
Uses
{$ifdef cgidebug}
@@ -814,6 +823,7 @@ begin
if not opened then
close;
end;
+ SetupEvents(Result);
finally
WriteFooter (aWriter);
end;
@@ -838,6 +848,20 @@ begin
FOnWriteRecord (self, aWriter);
end;
+function THTMLCustomDatasetContentProducer.GetEvents: TEventRecords;
+begin
+ AddEvent(result,jseInputChange,OnChange,'onchange',OnChangeCS);
+end;
+
+procedure THTMLCustomDatasetContentProducer.HandleAjaxRequest(ARequest: TRequest;
+ AnAjaxResponse: TAjaxResponse);
+begin
+ inherited HandleAjaxRequest(ARequest, AnAjaxResponse);
+ case StrToIntDef(ARequest.QueryFields.Values['event'],-1) of
+ jseInputChange : if assigned(OnChange) then OnChange(Self, ARequest, AnAjaxResponse);
+ end;
+end;
+
{ THTMLSelectProducer }
procedure THTMLSelectProducer.SetItems(const AValue: TStrings);