Lv 4
發問時間: 電腦與網際網路程式設計 · 1 0 年前

Ajax+TextBox+Multiline+MaxLen

想請教ASP.NET的高手,

我知道TextBox在Multiline模式下,MaxLength是沒有作用的

有找過相關的解決方式,在一般的.aspx是可以解決的(有找到兩種)

第一種我試過,但完全不行,編譯就會出現錯誤了(不知是不是.NET 3.5的關係~"~)

http://blog.miniasp.com/post/2008/05/TextBox-TextM...

第二種我試過,可以正常限制TextBox在Multiline模式下的MaxLength字數

http://www.codeproject.com/KB/aspnet/Textarea_Leng...

現在遇到的問題是在AJAX裡就失去作用了

設計方式如下:

我有一個WebForm建置在Master.page(有一個ScriptManager)裡

而在WebForm裡建置了一個UpdatePanel

並且在UpdatePanel裡放一個TextBox並設定Multiline模式

我該如何做才能去限制TextBox的字數~讓MaxLength此功能正常運作呢?

P.S:我是用VB寫的

1 個解答

評分
  • 小寶
    Lv 5
    1 0 年前
    最佳解答

    大大可以試試看用javascript

    我個人有在TextBox並設定Multiline模式

    裡限制過字數

    不過~我不是用MaxLength來設定

    我的做法是這樣

    在Page的事件Page_PreRender裡面來寫一些程式(如果沒有就自行建立此事件

    Dim txtInsert As TextBox = Me.txtInsertContext //頁面上要限制的TextBox

    Dim InsertChar As Label = Me.lbInsertChar //頁面上顯示目前輸入字數的Label

    接下來要設定script了

    Dim tempStr As String = ""

    tempStr = "if (document.getElementById('" + txtInsert.ClientID + "').value.length <=70) {"

    tempStr += "document.getElementById('" + InsertChar.ClientID + "').innerHTML"

    tempStr += " ='目前字數:' + document.getElementById('" + txtInsert.ClientID + "').value.length;}"

    tempStr += "else {"

    tempStr += "alert('字數不得超過70個字元');"

    tempStr += "document.getElementById('" + txtInsert.ClientID + "').value = docume" + txtInsert.Client.getElementById('ntID + "').value.substr(0,70);}"

    txtInsert.Attributes.Add("onkeyup", tempStr )//最後將tempStr放到要限制字數TextBox的onkeyup的事件裡

    此程式本人是限制七十個字

    當超過七十個字會出現messagebox之後

    將TextBox的字數大於七十個字的切掉

    大大~這個是我自已寫的,在我的程式裡是可以執行的

    不過我是寫C#,不知道我這樣改能不能在vb#裡執行

    試試看吧~

    參考資料: 自己
還有問題?馬上發問,尋求解答。