Sau đây là cách tôi đã làm nó ... hy vọng nó sẽ giúp .. .
Thêm một mục mới vào dự án của bạn thuộc loại "JScript file", sau đó dán mã này trong:
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');
};
}
}
Bây giờ thêm dòng này vào trang aspx của bạn sau khi cơ thể thẻ (thay đổi tên tập tin vào bất cứ điều gì bạn gọi nó là ở trên!):
<script type="text/javascript" src="setNewType.js"></script>
Cuối cùng, thêm một cái gì đó như sau để mã của bạn đằng sau PageLoad (tôi sử dụng VB ở đây):
aspTxtBxId.Attributes("xtype") = "tel" ' or whatever you want it to be
phần quan trọng trên là Attributes ("xtype"), vì nó đặt XTYPE thuộc tính trong html rendered cho "textbox", mà javascript sau đó tìm thấy. và sử dụng để thay thế thuộc tính "loại" gốc.
Chúc may mắn!
FJF
Nguồn
2010-05-18 03:24:09
Nhà thiết kế không cho phép loại đó! –
không, thật không may nó làm tăng lỗi biên dịch –
Vâng, bạn nói đúng. Một cách khác là kế thừa TextBox và ghi đè phương thức AddAttributesToRender (HtmlTextWriter writer). writer.AddAttribute (HtmlTextWriterAttribute.Type, "date"); –