2010-05-04 10 views

Antwort

0

Eigentlich gibt es keine einfache Art und Weise ist das type-Attribut in standart asp außer Kraft zu setzen: TextBox. Sie können simly ein Eingabeelement verwenden

Hier ist ein Beispiel

<input type="date" id="Input1" runat="server" /> 

Lassen Sie mich wissen, ob es hilft ...

+0

Designer lässt diesen Typ nicht zu! –

+0

nein, leider wirft es Kompilierungsfehler auf –

+2

Ja, Sie haben Recht. Eine andere Möglichkeit besteht darin, die TextBox zu erben und die Methode AddAttributesToRender (HtmlTextWriter writer) zu überschreiben. writer.AddAttribute (HtmlTextWriterAttribute.Type, "date"); –

3

Hier ist, wie ich tat es ... hoffe, es hilft .. .

var setNewType; 
if (!setNewType) { 
setNewType = window.onload = function() { 
    var a = document.getElementsByTagName('input'); 
    for (var i = 0; i < a.length; i++) { 
     if (a[i].getAttribute('xtype')) { 
      a[i].setAttribute('type', a[i].getAttribute('xtype')); 
      a[i].removeAttribute('xtype'); 
     }; 
    } 
} 
:

ein neues Objekt zu einem Projekt des Typs "JScript-Datei", dann in den Code einfügen hinzufügen

nun diese Zeile in Ihre Aspx-Seite nach dem Tag Körper hinzufügen (die Dateinamen Sie es oben genannt, was auch immer ändern!):
<script type="text/javascript" src="setNewType.js"></script>

schließlich so etwas wie die folgenden, um Ihren Code hinter Pageload hinzufügen (Früher habe ich VB hier):

aspTxtBxId.Attributes("xtype") = "tel" ' or whatever you want it to be 

der wichtige Teil oben ist die Attribute („xtype“), wie es das Attribut xtype im gerenderten html für die „Textbox“ platziert, die das Javascript dann findet. und verwendet, um das ursprüngliche Attribut "type" zu ersetzen.

Viel Glück!
FJF

+0

Ich erinnere mich, dass frühere Versionen von IE (nicht sicher über IE9) nicht erlaubt, Eingabearten über Javascript zu ändern. –

1

Ich ging die Route des Erstellens meines eigenen Satzes html5 inputs durch Erstellen von benutzerdefinierten Steuerelementen. Ich bekomme die benutzerdefinierten Tastaturen auf iPad und iPhone sowie die Postback-Codierung von echten asp.net-Steuerelementen. Es funktionierte für mein Inhouse-Projekt, also beschloss ich, die ganze Suite zu lizenzieren, um anderen Leuten die Zeit und Mühe zu ersparen, es von Grund auf neu zu machen.

Hoffe, das hilft!

29

Es ist ein Update für .NET Framework 4, die Sie das type-Attribut

http://support.microsoft.com/kb/2468871 angeben können.

Siehe feature 3 Weg nach unten die Seite

Merkmal 3

Neue Syntax können Sie eine TextBox-Steuerelement definieren, die HTML5 kompatibel ist.Zum Beispiel definiert die folgende Code ein Textboxsteuerelement, die HTML5 kompatibel:

<asp:TextBox runat="server" type="some-HTML5-type" /> 
+3

Das sind gute Nachrichten, aber nicht alle von uns können unsere Legacy-Apps auf .NET 4 aktualisieren. – styfle

+0

Dies funktioniert nicht mit IE10 – JoshYates1980

6

Wenn Sie nichts dagegen haben, Subklassifizieren, können Sie dies tun, indem overidding AddAttributesToRender

public class DateTextbox : System.Web.UI.WebControls.TextBox 
{ 
    protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer) 
    { 
     writer.AddAttribute("type", "date"); 
     base.AddAttributesToRender(writer); 
    } 
} 
2

Ich weiß, Diese Frage ist alt, aber ich hatte das gleiche Problem in einer Web Forms-Anwendung. Sie müssen Textmode verwenden

Während die Dokumentation besagt, dass

die Textmode-Eigenschaft können Sie festlegen, wie ein Textfeld-Steuerelement angezeigt wird. Drei allgemeine Optionen sind ein einzeilige, mehrzeilige oder ein Kennwort-Textfeld.

Sie können auch html5, Datum, Uhrzeit, Nummer usw. verwenden, die in Visual Studio 2012/2013 erstellt wurden.

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textmode(v=vs.110).aspx

+0

Dies ist die richtige Antwort. Ich hatte die Warnmeldungen satt und hasse es, Warnungen zu deaktivieren. Ich weiß nicht, warum ich nicht an Textmodus gedacht habe - natürlich kann MS den nativen Eigenschaftennamen nicht verwenden. – Ripside

Verwandte Themen