* Added OnChange and OnChangeCS events to THTMLCustomDatasetContentProducer

git-svn-id: trunk@14876 -
This commit is contained in:
joost 2010-02-07 12:31:55 +00:00
parent 7d16a2ded2
commit c5c0bab10b

View File

@ -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);