Slette i et GridView med ekstern klasse
<asp:GridView ID="GridView1" DataKeyNames="AllowEdit, Obligated, ProspectContentId" runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False"><Columns>
<asp:CommandField ShowEditButton="True" ButtonType="Image" CancelImageUrl="~/common/images/undo.png" DeleteImageUrl="~/common/images/document_delete.png" EditImageUrl="~/common/images/document_edit.png" UpdateImageUrl="~/common/images/disk_blue_ok.png" >
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
</asp:CommandField>
<asp:CommandField ShowDeleteButton="True" DeleteImageUrl="~/common/images/document_delete.png" ButtonType="Image" >
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
</asp:CommandField>
<asp:BoundField DataField="AllowEdit" ReadOnly="True" ShowHeader="False" Visible="False" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label id="ItemName" Runat="Server"
Text='<%# TextParser(Eval("Content")) %>'/>
</ItemTemplate>
<EditItemTemplate>
{Kode fjernet}
</EditItemTemplate>
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top" Width="100%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetProspectContentByProspectId2"
TypeName="DemosenderDataLayer" DeleteMethod="DeleteProspectContent" UpdateMethod="UpdateProspectContent">
<SelectParameters>
<asp:QueryStringParameter Name="ProspectId" QueryStringField="ProspectId" Type="Int16" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="ProspectContentId" Type="Int16"/>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="ProspectContentId" Type="Int16" />
<asp:Parameter Name="Content" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
Som det kan ses, benytter jeg en ekstern klasse (DemosenderDataLayer) til at bl.a. hente data ind i gridview´et (GetProspectContentByProspectId2)
Det er også meningen at jeg vil benytte den eksterne klasse til at slette fra databasen ved hjælp af (DeleteProspectContent) funktionen.
Funktionen tager 1 parameter (ProspectContentId), som jeg har defineret i <DeleteParamenter> sektionen
ProspectContentId er et skjult felt i gridviewet, derfor bruger jeg (DataKeyNames="AllowEdit, Obligated, ProspectContentId").
Min eksterne klasse er defineret på følgende måde:
Public Sub DeleteProspectContent(ByVal ProspectContentId As Int16)
bla bla.
end sub
Hvordan får jeg overført min variabel ProspectContentId til min eksterne klasse? Jeg kan ikke konstatere, at variablen kommer med over.
Jeg får følgende fejl:
Exception Details: System.InvalidOperationException: ObjectDataSource 'ObjectDataSource1' could not find a non-generic method 'DeleteProspectContent' that has parameters: ProspectContentId, AllowEdit, Obligated.
I 'ObjectDataSource1' har jeg "peget" på min funktion (DeleteProspectContent)
Hvad gør jeg galt? Skal jeg lave en handler (AddHandler GridView1.RowDeleting, AddressOf GridView1_RowDelete) i stedet? og i så fald, hvordan fanger jeg ProspectContentId værdien?
