5

テキスト ボックスの幅を 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 テーブルを使用すべきではないことはわかっています..確かに別の主題です)しかし、実際の幅を、入力されたボックスで許可されている最大文字数に制限する方法はありますか?

4

6 に答える 6

4

次のように、コード (Page_Load で呼び出される) から設定できます。

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

私たちのシステムはデータベース駆動型で、各変数の長さプロパティを格納するメタデータ テーブルがあります。私は、ControlCollection と各 TextBox アイテムを反復処理してメタ データを個人的に使用し、変数のメタ データの長さを取得してから、それを MaxLength と Width に割り当てましたが、既に MaxLength が設定されている場合は、この中で Widths を行うことができます。方法。

于 2011-08-31T18:16:38.763 に答える
3

文字の幅はさまざまであるため、正確ではありません。しかし、これに本当に真剣に取り組んでいるのであれば、Javascript (jQuery) を少し使ってそれを行うことができます。手順は次のとおりです。

  • スパン オフスクリーンを作成します (top:-1000px など)
  • スパンがテキストボックスと同じスタイル/クラスであることを確認してください
  • スパンを 60 文字で埋める
  • jQuery を使用してスパンの幅を測定する
  • その幅をテキスト ボックスに適用します

これは、Facebook などで見られる自動拡張テキストエリアに似た手法です: http://james.padolsey.com/javascript/jquery-plugin-autoresize/

(この場合、縦ではなく横に行っています。)

実際のコードが必要な場合はお知らせください。最善を尽くします。

于 2010-06-11T01:29:20.653 に答える
0

これは古い質問だと思いますが、MaxLength 属性に基づいてテキスト ボックスのスタイルを設定する方法を探している人のために、次の CSS を使用します。

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

MaxLengths が異なる多数のテキスト ボックスがある場合、これはおそらく解決策にはなりません。ただし、テキスト ボックスの表示を入力内容と一致させたい場合は、良い解決策だと思います。

于 2013-10-17T13:20:22.407 に答える
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 に設定すると、興味深い演習になります。

于 2010-06-11T01:03:52.763 に答える