Moin moin,
habe in einem asp
atagrid eine zusättzliche asp:ButtonColumn eingefügt, in der eine Delete-Button angezeigt. Nun soll beim Klicken auf diese Button ein Abfrage-Fenster geöffnet werden. Dazu habe ich im I-Net einen Beispiel-Code gefunden, der allerdings in VB.Net geschrieben ist:
Code:
Sub dgPopularFAQs_ItemDataBound(sender as Object, e as DataGridItemEventArgs)
' First, make sure we're NOT dealing with a Header or Footer row
If e.Item.ItemType <> ListItemType.Header AND _
e.Item.ItemType <> ListItemType.Footer then
'Now, reference the LinkButton control that the Delete ButtonColumn
'has been rendered to
Dim deleteButton as LinkButton = e.Item.Cells(0).Controls(0)
'We can now add the onclick event handler
deleteButton.Attributes("onclick") = "javascript:return " & _
"confirm('Are you sure you want to delete FAQ #" & _
DataBinder.Eval(e.Item.DataItem, "FAQID") & "?')"
End If
End Sub
Bisher ist es mir noch nicht gelungen, diesen so in Delphi zu übersetzen, daß er ohne Probleme läuft, hier einer meiner Versuche:
Delphi-Quellcode:
procedure TWebForm1.dgTest_ItemDataBound(sender: System.Object; e: System.Web.UI.WebControls.DataGridItemEventArgs);
var
bDeleteButton: LinkButton;
begin
If (e.Item.ItemType = ListItemType.Item) or
(e.Item.ItemType = ListItemType.AlternatingItem) Then
begin
// bDeleteButton := LinkButton.Create;
bDeleteButton := LinkButton (e.Item.Cells[4].Controls[0]);
bDeleteButton.Attributes['onclick'] := 'javascript:return ' +
'confirm(''Are you sure you want to delete FAQ # ?'');';
end;
end;
Es erscheint folgende Fehlermeldung:
Zitat:
Beschreibung: Beim Ausführen der aktuellen Webanforderung ist ein unverarbeiteter Fehler aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.
Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Quellfehler:
Zeile 202:// bDeleteButton := LinkButton.Create;
Zeile 203: bDeleteButton := LinkButton (e.Item.Cells[4].Controls[0]);
Zeile 204: bDeleteButton.Attributes['onclick'] := 'javascript:return ' +
Zeile 205: 'confirm(''Are you sure you want to delete FAQ # ?'');';
Zeile 206:// e.Item.Attributes.Add('onclick',
Quelldatei: c:\inetpub\wwwroot\FB_Test\fb_test_seite.pas Zeile: 204
Stapelüberwachung:
[NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
System.Web.UI.WebControls.WebControl.get_Attribute s()
fb_test_seite.TWebForm1.dgTest_ItemDataBound(Objec t sender, DataGridItemEventArgs e) in c:\inetpub\wwwroot\FB_Test\fb_test_seite.pas:204
System.Web.UI.WebControls.DataGrid.OnItemDataBound (DataGridItemEventArgs e)
System.Web.UI.WebControls.DataGrid.CreateItem(Int3 2 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource)
System.Web.UI.WebControls.DataGrid.CreateControlHi erarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBindi ng(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
fb_test_seite.TWebForm1.BindGrid() in c:\inetpub\wwwroot\FB_Test\fb_test_seite.pas:289
fb_test_seite.TWebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\FB_Test\fb_test_seite.pas:181
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
ich bin entweder betriebsblind oder zu müde...