Wie wird eine bestimmte ID für Serversteuerelemente in einem ASP.NET-Webformular festgelegt, das eine MasterPage verwendet?

8

Ist es möglich, eine bestimmte ID in einem ASP.NET-Serversteuerelement festzulegen? Jedes Mal, wenn ich eine ID zuweisen und das Webformular ausführen, ändert sich die ID.

Zum Beispiel:

%Vor%

Wird in folgendes übersetzt:

%Vor%

Ich denke, dass dies mit Master-Seiten zu tun ist, aber wenn ja, wie kann ich sicher sein, dass ein Steuerelement eine bestimmte ID hat (für Javascript-Zwecke). Ich habe die automatisch generierte ID in mein Javascript eingefügt und es funktioniert, aber ich hätte lieber die IDs verwendet, denen ich sie ursprünglich zugewiesen habe. Ist das möglich?

(Dies ist für Version: ASP.NET 3.5)

    
loyalpenguin 21.07.2010, 22:45
quelle

3 Antworten

4

Dies ist die Art und Weise, wie Websteuerelemente IDs in .NET vor Version 4.0 sind. Version 4.0 führt Client-IDs ein, die Sie über hier .

Sie können so etwas in Ihrem JS verwenden:

%Vor%     
Dustin Laine 21.07.2010, 22:50
quelle
21

Ab .NET 4 haben Sie mehr Kontrolle darüber, wie die clientseitigen IDs aussehen ( diesen Beitrag für Details ).

Um eine bestimmte clientseitige ID zu erzwingen, müssen Sie den ClientIDMode auf statisch setzen. Im Folgenden wird ein <input> -Element mit id="txtName" :

dargestellt %Vor%

Wenn Sie dies tun, müssen Sie jedoch sicherstellen, dass Sie nicht über zwei Steuerelemente mit identischen clientseitigen IDs verfügen. Überprüfen Sie den oben verlinkten Artikel auf weitere Optionen.

    
M4N 21.07.2010 22:49
quelle
2

Sie können die Eigenschaft Control.ClientID in verwenden Ihr Codebehind, um die tatsächliche ID zu erhalten, nachdem sie zur Kontrollstruktur hinzugefügt wurde.

Super nervige Wahl von den asp.net Webforms Leuten gemacht.

    
BC. 21.07.2010 22:50
quelle

Tags und Links