2010-06-10 57 views
5

有沒有辦法將文本框的寬度限制爲MaxLength屬性?在現在我的情況下,TextBox控件放置在一個表格單元格在這個片段:如何將文本框的寬度設置爲與ASP.NET中的MaxLength相同

<td class=TDSmallerBold style="width:90%"> 
     <asp:textbox id="txtTitle" runat="server" 
      CausesValidation="true" 
      Text="Type a title here..be concise but descriptive. Include price." 
      ToolTip="Describe the item with a short pithy title (most important keywords first). Include the price. The title you provide here will be the primary text found by search engines that index Zipeee content." 
      MaxLength="60" 
      Width="100%"> 
     </asp:textbox> 

(我知道我不應該用HTML表格來控制肯定layout..another主題),但有一個如何將實際寬度限制爲鍵入框中允許的最大字符數?

回答

3

這不會是精確的,因爲字符的寬度不同。但如果你真的認真對待這個問題,你可以用一些Javascript(jQuery)來完成。具體的步驟是:

  • 創建一個跨屏外(上圖:-1000px或東西)
  • 確保跨度有相同的樣式/班爲您的文本框中
  • 填寫跨度有60個字符
  • 使用jQuery測量跨度
  • 的寬度應用該寬度文本框

它類似於自動擴展的文本域爲y的技術OU在Facebook上看到這樣的:http://james.padolsey.com/javascript/jquery-plugin-autoresize/

(在這種情況下,你正在做這水平,而不是垂直)

如果你需要真正的代碼,讓我知道,我會盡我所能。

0

我用的是HTML屬性的cols

因此,對於你的例子,我會用

 <td class=TDSmallerBold style="width:90%"> 
    <asp:textbox id="txtTitle" runat="server" 
     CausesValidation="true" 
     Text="Type a title here..be concise but descriptive. Include price." 
     ToolTip="Blah Blah I don't like horizotal scroll-bars" 
     MaxLength="60" 
     Width="100%" 
     Cols="60" 
     > 
    </asp:textbox> 

我從來沒有嘗試過,但我不知道是否有扎兩者一起的方式。所以MAXLENGTH設置也設的cols,將是一個有趣的練習

3

你可以從你的代碼(稱爲在你的Page_Load)這樣設置:

txtTitle.Width = new Unit(txtTitle.MaxLength, UnitType.Em); 

我們的系統是數據庫驅動的,我們有一個存儲每個可變長度屬性的元數據表。我個人使用元數據迭代ControlCollection和每個TextBox項目,拉動變量的元數據的長度,然後將其分配給MaxLength和寬度,但如果你已經有MaxLength設置,你可以讓它做寬度在這個方式。

0

我意識到這是一個老問題,但對於那些誰遇到過尋找如何風格基礎上的MaxLength文本框屬性我用下面的CSS人:

input[maxlength='2'] { width: 40px;} 

如果你有很多的文本框與不同的MaxLengths,那麼這可能不會是你的解決方案。但是,如果您想要顯示一個文本框以匹配要輸入的內容,我認爲這是一個很好的解決方案。

0
$(':input[maxlength]').each(function (i, e) {$(e).width(e.maxLength * 10)}); 

這是使一個假設,即字符是大致 10px的。它適合我的需求。

0

我意識到這是一篇非常古老的文章 - 這裏是我爲未來其他人蔘考的答案!

使用Style屬性將寬度設置爲100%,而不是使用width屬性。

例如

<td class=TDSmallerBold style="width:90%"> 
<asp:textbox id="txtTitle" runat="server" 
    CausesValidation="true" 
    Text="Type a title here..be concise but descriptive. Include price." 
    ToolTip="Blah Blah I don't like horizontal scroll-bars" 
    MaxLength="60" 
    Style="Width: 100%" 
    > 
</asp:textbox> 

這是在我工作的生產環境中嘗試和測試的。它比使用Javascript更簡單,適用於現有的HTML。

至於爲什麼這個作品,不幸的是我缺乏知識。

相關問題