[ASP.NET/C#] Parameterwaardes tussentijds toewijzen

Pagina: 1
Acties:

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 05-01 22:08
Hallo,

Ik ben bezig met een ASP.NET applicatie met daar in een Lijst van plaatjes namen (GridView) en een FormView. Wanneer je in de gridView een regel aanklikt er aan de zijkant een FormView tevoorschijn met daarin het plaatje, de naam en commentaar. Daar onder heb ik twee knoppen staan:

Nieuw en Wijzigen.

Als je nu op wijzigen drukt komt kan je het plaatje bewerken de naam en het commentaar aanpassen en een nieuw plaatje er opzetten via een FileUpload Control. Nu is het zo dat ik een ObjectDataSource gebruik die bestaat uit een XSD bestand (XML) met daarin de SQL commandos en return en invoerwaardes. Dit doe ik omdat ik anders niet zou weten hoe je via de knop Nieuw en Wijzigen een SQL commando kan hangen.

ObjectDataSource Code:
ASP.NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<asp:ObjectDataSource ID="selectPlaatje" runat="server" InsertMethod="InsertQuery"
    OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="dataPlaatjeTableAdapters.plaatjesTableAdapter"
    UpdateMethod="UpdateQuery">
    <UpdateParameters>
        <asp:Parameter Name="naam" Type="String" />
        <asp:Parameter Name="commentaar" Type="String" />
        <asp:Parameter Name="fullsize" Type="Object" />
        <asp:Parameter Name="fullsizeWidth" Type="Int32" />
        <asp:Parameter Name="fullsizeHeight" Type="Int32" />
        <asp:Parameter Name="thumb" Type="Object" />
        <asp:Parameter Name="thumbWidth" Type="Int32" />
        <asp:Parameter Name="thumbHeight" Type="Int32" />
        <asp:Parameter Name="extension" Type="String" />
        <asp:ControlParameter ControlID="gridPlaatjes" Name="plaatjeID" PropertyName="SelectedValue" Type="Int32" />
    </UpdateParameters>
    <SelectParameters>
        <asp:ControlParameter ControlID="gridPlaatjes" Name="plaatjeID" PropertyName="SelectedValue"
            Type="Int32" />
    </SelectParameters>
    <InsertParameters>
        <asp:Parameter Name="naam" Type="String" />
        <asp:Parameter Name="fullsize" Type="Object" />
        <asp:Parameter Name="fullsizeWidth" Type="Int32" />
        <asp:Parameter Name="fullsizeHeight" Type="Int32" />
        <asp:Parameter Name="thumb" Type="Object" />
        <asp:Parameter Name="thumbWidth" Type="Int32" />
        <asp:Parameter Name="thumbHeight" Type="Int32" />
        <asp:Parameter Name="Commentaar" Type="String" />
    </InsertParameters>
</asp:ObjectDataSource>


Nu heb ik aan het FormView een event gehangen: OnItemUpdating

Die verwijst weer naar deze lap code in C#

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    protected void detailPlaatje_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        if (detailPlaatje.CurrentMode == FormViewMode.Edit)
        {
            FileUpload fu = (FileUpload)detailPlaatje.Row.Cells[0].FindControl("updateUploadPlaatje");
            TextBox txtNaam = (TextBox)detailPlaatje.Row.Cells[0].FindControl("NaamTextBox");
            TextBox txtCommentaar = (TextBox)detailPlaatje.Row.Cells[0].FindControl("CommentaarTextBox");

            if (fu.FileName != "")
            {
                    //Hele lap code die verantwoordelijk is voor het inverkleinen en het juist opmaat maken van het plaatje
                    //De variablen die je hieronder zie staan kunnen daar dus afkomstig van zijn
                    //Ik wil dus de waardes toewijzen aan de Parameters die ik reeds in de asp code heb opgegeven
                    //Hoe wijs ik alleen de onderstaande waardes aan de UpdateQuery

                    e.NewValues["naam"] = (string) txtNaam.Text;
                    e.NewValues["commentaar"] = (string) txtCommentaar.Text;
                    e.NewValues["fullsize"] = (object) fullsize;
                    e.NewValues["fullsizeWidth"] = (int) fullsizeWidth;
                    e.NewValues["fullsizeHeight"] = (int) fullsizeHeight;
                    e.NewValues["thumb"] = (object) thumbnail;
                    e.NewValues["thumbWidth"] = (int) 250;
                    e.NewValues["thumbHeight"] = (int) thumbHeight;
                    e.NewValues["extension"] = (string) fileExtension;

                }
            }
        }
    }


Nu komt hij met deze fout:

ObjectDataSource 'selectPlaatje' could not find a non-generic method 'UpdateQuery' that has parameters: Naam, Commentaar, fullsize, fullsizeWidth, fullsizeHeight, thumb, thumbWidth, thumbHeight, extension, original_plaatjeID.

[ Voor 31% gewijzigd door Av3ng3rtje op 10-04-2006 23:10 ]


  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 05-01 22:08
Ik heb de oplossing gevonden

Ten eerste gebruikte ik een verkeerde geconfigureerd XSD dataset, deze heb ik opnieuw gemaakt.
Ten tweede gebruikte ik het verkeerde event, ik heb nu gebruik gemaakt van ObjectDataSource.Updating Event, in de event args kan je de input parameters manipuleren.