我不知道它之前是否被問過,也找不到它。爲html5輸入類型渲染asp.TextBox =「date」
是否可以控制由asp:TextBox呈現的輸入文本的類型?我想將其更改爲<input type="date">
任何建議或意見,歡迎,感謝
我不知道它之前是否被問過,也找不到它。爲html5輸入類型渲染asp.TextBox =「date」
是否可以控制由asp:TextBox呈現的輸入文本的類型?我想將其更改爲<input type="date">
任何建議或意見,歡迎,感謝
居然還有覆蓋在非標準的ASP type屬性沒有簡單的方法:文本框。 可以simly使用輸入元素
下面是一個例子
<input type="date" id="Input1" runat="server" />
讓我知道,如果它可以幫助...
這裏是我是如何做到的...希望它有助於.. 。
添加一個新的項目到您的類型「JScript文件」的項目,然後粘貼在此代碼:
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');
};
}
}
最後
<script type="text/javascript" src="setNewType.js"></script>
,添加類似下面的背後pageLoad的代碼(:
現在加入這行到你的aspx頁面的體標籤後(改變,無論你稱它上面的文件名!)我用VB這裏):
aspTxtBxId.Attributes("xtype") = "tel" ' or whatever you want it to be
上面的重要組成部分,是屬性(「的xtype」),因爲它把屬性的xtype在渲染HTML的「文本框」,它的JavaScript,然後找到。並用來替換原來的「type」屬性。
祝你好運!
FJF
我記得以前的IE版本(不確定IE9)不允許通過javascript改變輸入類型。 – 2012-02-06 13:21:20
通過構建自定義控件,我走了建立自己的一套html5 inputs的路線。我得到iPad和iPhone上的自定義鍵盤以及真正的asp.net控件的回發編碼。它適用於我的內部項目,所以我決定授權整套軟件來爲其他人節省時間和麻煩。
希望這會有所幫助!
沒有爲.NET Framework 4的更新,它允許你指定類型屬性
http://support.microsoft.com/kb/2468871。
見feature 3
一路下跌的頁面
特點3
的新語法允許您定義 TextBox控件是HTML5兼容 。例如,下面的 代碼定義了一個TextBox控件是 HTML5兼容:
<asp:TextBox runat="server" type="some-HTML5-type" />
這是個好消息,但並非所有人都可以將我們的舊版應用升級到.NET 4. – styfle 2012-09-25 19:12:00
這不適用於IE10 – JoshYates1980 2017-03-15 18:09:26
如果你不介意的子類,你可以通過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);
}
}
我知道做到這一點這個問題很舊,但我在Web Forms應用程序中遇到了同樣的問題。您需要使用的TextMode
雖然文檔指出
使用TextMode屬性來指定如何顯示一個TextBox控件。三種常用選項是單行,多行或密碼文本框。
您還可以使用在Visual Studio 2012/2013中構建的html5,日期,時間,編號等。
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textmode(v=vs.110).aspx
這是正確的答案。我厭倦了這些警告信息,我討厭禁用警告。我不知道爲什麼我沒有考慮textmode - 當然MS不能使用本地屬性名稱。 – Ripside 2016-11-17 17:50:37
設計者不允許這種類型! – 2010-05-04 20:14:08
不,不幸的是,它會引發編譯錯誤 – 2010-05-04 20:18:00
是的,你是對的。另一種方法是繼承TextBox並重寫AddAttributesToRender(HtmlTextWriter writer)方法。 writer.AddAttribute(HtmlTextWriterAttribute.Type,「date」); – 2010-05-04 20:31:39