Avatar billede pseudonym Nybegynder
01. april 2014 - 22:52 Der er 1 kommentar og
1 løsning

Brug værdi fra TextBox control i UpdateParameters

Hej alle,

Jeg har et problem, som jeg aldrig troede kunne være et problem. Jeg vil gerne have et detailsview, hvori man kan angive et ID (integer), vælge en billedefil til upload til dette ID i en MySQL database og trykke "update". Men jeg kan ikke få det til at virke efter mange timers frustration.

Mit DetailsView ser således ud:

<asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="UpdatePicture" Height="50px" Width="125px" DefaultMode="Edit" AutoGenerateRows="False" DataKeyNames="questionID">
            <Fields>
              <asp:TemplateField HeaderText="Spørgsmåls ID">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" text='<%# Bind("QuestionID") %>' runat="server" />
                    </EditItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Picture">
                    <EditItemTemplate>
                        <asp:FileUpload ID="FileUpload2" filebytes='<%# Bind("Picture") %>' runat="server" />
                    </EditItemTemplate>
                   
                </asp:TemplateField>
                <asp:CommandField ShowInsertButton="True" ShowEditButton="True" />
            </Fields>
        </asp:DetailsView>

Min DataSource ser således ud:

<asp:SqlDataSource ID="UpdatePicture" runat="server"
            ConnectionString="<%$ ... %>"
            ProviderName="<%$ ... %>"
           
            SelectCommand="SELECT questionID, picture FROM questions"

            UpdateCommand="UPDATE questions SET picture = ?picture      WHERE questionID = ?questionID ">
                       
            <UpdateParameters>
                <asp:Parameter Name="picture" />
                <asp:Parameter Name="questionID" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>

Hvad skal jeg gøre? Det der sker er, at den automatisk skriver det laveste ID i databasen ind i tekstfeltet, men selvom man ændrer værdien inden der trykkes "update" uploader den billedet til den værdi den oprindeligt sætter ind ved page load.

Er der nogen der kan hjælpe?
Avatar billede kalp Novice
02. april 2014 - 12:41 #1
Nu bruger jeg ikke de standard komponenter, men mit input er:

Page_Load afvikles før dine events.
Derfor bliver det originale indhold på siden bygget op igen før dit knap tryk event bliver afviklet.

Din kode i Page_Load skal altså tjekke for IsPostBack.

if(!IsPostBack){
// din kode her
}

Du kan også prøve at slå ViewState fra.

men arbejder som sagt aldrig med deres controller, så ovenstående er ikke nødvendigvis korrekt.
Avatar billede pseudonym Nybegynder
30. juni 2014 - 10:58 #2
Jeg har løst det på en helt anden måde, da jeg aldrig fandt en løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester