2009-07-22 5 views
1

Wenn Sie für Ihre deklarierten Steuerelemente in ASPX-Dateien keine ID angeben, weiß ich, dass VS automatisch eine für Sie generiert. Soll ich den Kontrollen immer eine beschreibende ID geben, auch wenn ich sie nicht von hinten erreiche?ID für ASP.NET-Steuerelemente deklarieren

Antwort

4

Es ist eher eine Vorliebe, wirklich. Ich nenne die meisten meiner Elemente, abgesehen von Dingen wie Labels, die ich nie ändern werde. Ich achte besonders darauf, alle meine Divs zu benennen, zum Beispiel für meine eigene geistige Gesundheit, wenn es später an der Zeit ist, ein Layout zu modifizieren.

Ich nehme an, dass der Grund, warum ich es tue, dann zusammenfasst. Die Namen für die meisten Steuerelemente sind deklarativer und einfacher zu lesen. Wenn Sie Bedenken haben, Ihr Intellisense zu "verschmutzen", verwenden Sie einfach ein gemeinsames Präfix zwischen ähnlichen Steuerelementen (wie TxtFirstName für ein Textfeld).

1

Auf der Plusseite können Sie möglicherweise den von ASP.NET generierten Namen (SomeGeneratedNameForATextBox23) reduzieren und einige Bytes speichern, die an den Client gesendet werden. Auf der negativen Seite verschmutzen Sie Ihre Intelligenz mit einem Mitglied, das Sie eigentlich nie berühren würden. Also, die Antwort ist: es kommt darauf an :)

3

würde ich ja sagen. Es scheint mir, dass es nur eine gute Übung ist und es macht trotz allem Debuggen einfacher, wenn man sich die generierte Quelle im Browser anschaut.

0

Wenn Sie sie nicht aus dem Code hinterher verwenden, macht ids keinen Unterschied, aber es ist immer eine gute Übung. Bestimmte Dinge werden nur für gutes Design getan. Diese IDs werden auf der Clientseite nicht verwendet, da diese IDs geändert werden, wenn sie an den Client gesendet werden. Sie müssen also das Klassenattribut verwenden, um sie mit say JQuery zu verwenden.

4

Wenn Sie vom Code-Behind nicht auf das Steuerelement zugreifen, sollten Sie zuerst fragen, ob Sie überhaupt ein Server-Steuerelement benötigen. Wenn es sich um ein einfaches Steuerelement wie ein Etikett handelt, auf dem keine Datenbindung läuft, lautet die Antwort wahrscheinlich "Nein". Sie können stattdessen einfach altes HTML-Markup verwenden. Wenn es etwas komplizierter ist, sollten Sie ihm einen Namen geben, der diese Komplexität anspricht.

+0

Ich denke an Dinge wie ScriptManager, UpdatePanel, Inhalt und LinkButtons innerhalb eines Steuerelements, das einen Befehl sprudeln wird. Ich brauche diese Serversteuerelemente, muss aber nicht im Code-Behind darauf verweisen. –

+0

Validatoren sind auch Serversteuerelemente, auf die ich jedoch nicht vom Code-Behind zugreifen muss. –