Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

ASP .NET, C#, Ajax - Help!

Îåêßíçóå áðü ôï ìÝëïò jhatzics. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 09-08-2008, 20:15. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-07-2008, 12:24 43620

    ASP .NET, C#, Ajax - Help!

    Καλησπέρα

       Αντιμετοπίζω δύο προβλήματα:

    1ο. Εχω δημιουργήσει ένα DataSet και μέσω αυτού ανακτώ κάποια δεδομένα από τη βάση μου. Αφού περάσω την τιμή ενός πεδίου τύπου string σε μία μεταβλητή τύπου string και την συγκρίνω με μία μεταβλητή τύπου string, η σύγκριση των δύο μεταβλήτών έχει πάντα αρνιτικό αποτέλεσμα. Παρακάτω σας δείχνω τον κώδικά μου και τα αποτελέσματα του browser.

    protected void Page_Load(object sender, EventArgs e)

    {

       DataSet1TableAdapters.usersTableAdapter usersAdapter = new DataSet1TableAdapters.usersTableAdapter();

       DataSet1.usersDataTable users;

       users = usersAdapter.GetUsers();

       string str2 = "ihatzi";

       try

       {

          int i = 0;

          bool boolVar = false;

          while(boolVar || i < users.Count)

          {

             string str = (string)users.RowsIdea[0];

             str = str.ToString();

             str2 = str2.ToString();

             Response.Write(str + " " + str2 + "<br />");

             if (str == str2)

             {

                Response.Write("Yes <br /><br />");

                boolVar = true;

             }

             else

             {

                i++;

                Response.Write("No <br /><br />");

             }

           }

       }

       catch (Exception ex)

       {

             Response.Write("There is an exception!" + ex.ToString());

       }

    }

    ------------------

    ihatzi ihatzi
    No

    jhatzics ihatzi
    No

    2o. Σε συνέχεια της προηγούμενης εφαρμογής, στην κλάση  _Default υπάρχει η συνάρτηση Button1_Click η οποία εκτελείται με το πάτημα ενός κουμπιού. Οτάν λοιπόν πατηθεί το κουμπί πρέπει να αλλάξει το κείμενο ενός ορισμένο label. Αυτό όμως δεν γίνεται. Αν αφαιρεθεί απο την συνάρτηση Page_Load όλος ο κώδικας που φαίνεται παραπάνω, τότε λειτουργεί κανονικά. Παρακάτω έχω τον κώδικα τις συνάρτησης και του html.

    protected void Button1_Click(Object sender, EventArgs e)

    {

       Label1.Text = "You clicked the button!";

    }

     

    <form id="form1" runat="server">

       <asp:ScriptManager EnablePartialRendering="true" id="ScriptManager1" runat="server"></asp:ScriptManager>

          <div>

             <asp:UpdatePanel ID="UpdatePanel1" runat="server">

                <ContentTemplate>

                   <asp:Label ID="Label1" runat="server" Text="This is a label!"></asp:Label>

                   <asp:Button ID="Button1" runat="server" text="Click Me" OnClick="Button1_Click" />

                </ContentTemplate>

             </asp:UpdatePanel>

          </div>

    </form>

    Δημοσίευση στην κατηγορία: , ,
  •  08-08-2008, 09:10 43996 σε απάντηση της 43620

    Απ: ASP .NET, C#, Ajax - Help!

    Για αρχή βάλε τον κώδικα της Page_Load σε ένα

    if (!IsPostBack)

    {

       //ο κώδικάς σου

    }

    Έτσι όπως είναι θα σου δημιουργήσει και άλλα προβλήματα με DataBindings κλπ..


    Stefanos Aslanis
  •  09-08-2008, 03:00 44018 σε απάντηση της 43620

    Απ: ASP .NET, C#, Ajax - Help!

    ... και συνέχισε δοκιμάζοντας str2.Equals(str1). Αν δεν κάνω λάθος, το == συγκρίνει τους pointers "απο κάτω", κι όχι την τιμή αυτή καθαυτή του string. Στις 3 το πρωί βέβαια ... μπορεί να κάνω και λάθος ! :P

    Angel
    O:]
  •  09-08-2008, 20:15 44024 σε απάντηση της 44018

    Απ: ASP .NET, C#, Ajax - Help!

    Τελικά οι άνθρωποι κάνουν πολύ περίεργα πράγματα στις 3 το πρωί! Άλλοι κοιτάνε user lists Stick out tongue άλλοι ΞΕΧΝΑΝΕ να κοιτάξουν το documentation! Σοβαρά, το σκέφτηκα κι εγώ αυτό, αλλά o operator == της String κάνει και σύγκριση pointers και χρησιμοποιεί την Equals. Οπότε αλλού είναι το πρόβλημα. Μπορεί π.χ. η τιμή που έρχεται από τη βάση να έχει CR/LF, tabs κενά και γενικά whitespace το οποίο δεν φαίνεται με μία Console.WriteLine. Όλες αυτές οι ToString() στον αρχικό κώδικα δεν επηρεάζουν το αποτέλεσμα, απλά είναι εντελώς περιττές καθώς τα str, str2 έχουν οριστεί ως string από την αρχή.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems