Avatar billede celinder Nybegynder
16. juni 2005 - 14:14 Der er 11 kommentarer og
1 løsning

teksbox der skal gøre 2 forskellige ting

Jeg har 2 knapper der begge gør en teksbox visible hvilket også virker fint nok.

*Når man trykker på "add" knappen skal den kunne indsætte det man indtaster i en database, hvilket også virker fint -


men jeg har så en edit knap som gør samme teksbox synlig, hvordan laves det således at den kan finde ud af om det er en edit den skal lave eller en add.

forstår i mig ?
Avatar billede dr_chaos Nybegynder
16. juni 2005 - 14:21 #1
når du trykker på edit skal der så indlæses noget data i tekstboxen ?
Avatar billede celinder Nybegynder
16. juni 2005 - 14:25 #2
nej det skal der ikke men der skal åbnes en tekstbox, hvilket der også bliver gjort

brugeren indtaster så noget data og tabellen opdateres med det inputtet data når man trykker ok...
Avatar billede softspot Forsker
16. juni 2005 - 14:26 #3
Kan du ikke bare lave et skjult felt på formularen som angiver om det er en redigering eller en oprettelse du er igang med...? Det felt skal naturligvis kontrolleres når du har behov for at vide hvilken tilstand formularen er i.
Avatar billede dr_chaos Nybegynder
16. juni 2005 - 14:33 #4
jeg er enig med softspot i hans løsningsforeslag.
Det er den nemmeste måde at styre det på.
Avatar billede celinder Nybegynder
16. juni 2005 - 14:35 #5
jeg sidder lige nu og leger med den funktion hvor jeg trykker på f.eks "add" og gør teksboxen visible

prøver jeg at tilføjge: TextBox1.ID = "add"

i Sub1_Button_Ok_Click(..... )
gør jeg følgende if (TextBox1.ID Is "add") men det virker ikke burde det ikke det ??

lidt inspireret af jeres indlæg ....
Avatar billede celinder Nybegynder
16. juni 2005 - 14:57 #6
jeg kan heller ikke få dit til at virke softspot, kan du give et eksempel ??
Avatar billede softspot Forsker
16. juni 2005 - 15:09 #7
Sætter du synligheden af tekstfeltet på klienten eller på serveren?

Hvis du sætter det på serveren, kan du sagtens lægge en værdi i ViewState som angiver hvilken tilstand du er i. Dette kræver blot at du poster tilbage til samme side og at du tillader viewstate (men det er jo standard slået til, så med mindre du har slået det fra, så burde det fungere).

Du kan sætte ViewState således (men det ved du sikkert allerede):

ViewState["dinNøgle"] = "dinVærdi";
Avatar billede celinder Nybegynder
16. juni 2005 - 15:15 #8
Jeg sætter synligheden af teksfeltet på serveren.

Private Sub Button1_Click(......) Handles Button1.Click
        Sub1_Button_Ok.Visible = True
        Sub1_Button_Cancel.Visible = True
        TextBox1.Visible = True

og den samme smøre for edit boxen.

nej jeg kender ikke den viewstate og har ikke slået den fra .......

har du mulighed for at give eksempel ?
Avatar billede softspot Forsker
16. juni 2005 - 15:27 #9
Først lige eksemplet på det med et skjult felt, først klient-koden:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Sandkassen.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <script type="text/javascript">
        function showText(state)
        {
            var txt = document.getElementById("txtData");
            var hid = document.getElementById("hidState");
            if(txt)
            {
                txt.style.display = "block";
                if(hid)
                    hid.value = state;
            }
        }
        </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <input type="hidden" name="hidState" id="hidState" runat="server">
            <input type="text" name="txtData" id="txtData" style="DISPLAY:none" runat="server"><br>
            <input type="button" name="cmdShowAdd" value="Tilføj tekst" onclick="showText('add')"><br>
            <input type="button" name="cmdShowEdit" value="Rediger tekst" onclick="showText('edit')"><br>
            <input type="submit" name="cmdGO" value="POST TO SERVER">
        </form>
    </body>
</HTML>


...og så server-koden:
public class WebForm1 : System.Web.UI.Page
{
    protected System.Web.UI.HtmlControls.HtmlInputHidden hidState;
    protected System.Web.UI.HtmlControls.HtmlInputText txtData;
   
    private void Page_Load(object sender, System.EventArgs e)
    {
        if(hidState.Value == "add")
        {
            // gør hvad der skal gøres i tilføjelsestilstand...
            Response.Write("Du valgte oprettelse. Teksten indholdte: " + txtData.Value);
        }
        else if(hidState.Value == "edit")
        {
            // gør hvad der skal gøres i redigeringstilstand...
            Response.Write("Du valgte redigering. Teksten indholdte: " + txtData.Value);
        }
           
        /* EKSEMPEL PÅ HVORDAN MAN BENYTTER VIEWSTATE TIL AT HOLDE TILSTAND */
        /*
        if(ViewState["test"] != null)
            Response.Write("ViewState er aflæst: " + ViewState["test"]);
        else
        {
            ViewState["test"] = "YES!";
            Response.Write("ViewState er sat");
        }
        */
    }

    // ...PLUS EN KLUMP STANDARD-GENERERET FORM-KODE SOM Visual Studio.NET selv laver.
}

Som du kan se, så har jeg valgt at benytte HTML-Controls, men du kan nok hurtigt udskifte tekst-feltet med server-controls.
Avatar billede softspot Forsker
16. juni 2005 - 15:28 #10
Som du måske opdager, ligger min form altså i et namespace som hedder Sandkassen. Du kan jo lave dit eget namespace hvis du vil teste med min kode :)
Avatar billede celinder Nybegynder
16. juni 2005 - 15:33 #11
super tak - :-) lige hvadjeg havde brug for........ kommer du ikke med et svar ?
Avatar billede softspot Forsker
16. juni 2005 - 16:08 #12
jeps
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