25

ビューでEditorForコントロールの幅を設定できますか?

私はいくつかのパラメータを設定しました:

[Required, DisplayName("Payee Name"), StringLength(50)]
public string Name { get; set; }

ただし、レンダリングされるテキストボックスの幅を設定できないようです。

<table width="300" border="0" cellpadding="3" cellspacing="0">
    <tr>
        <td>
            <%=Html.LabelFor(m => m.Name)%>
        </td>
        <td>
            <%=Html.EditorFor(m => m.Name)%>
        </td>
    </tr>

これはどういうわけか行うことができますか?

私は試した:

<%=Html.EditorFor(m => m.Name, new {width=50)%>

しかし、喜びはありません...

4

12 に答える 12

35

EditorFor の代わりに、TextBoxFor を使用します。

<%=Html.TextBoxFor(m => m.Name, new {style = "width:50px"})%>
于 2011-07-05T14:58:53.137 に答える
18

CSSを使用してコントロール幅のスタイルを設定することの何が問題になっていますか?

于 2011-01-18T06:22:46.940 に答える
10

mvc 5 では、すべてのテキストエリアに max-width=200 を設定する site.css の設定があります。このブログ投稿を見つけるまで、それは私を混乱させました。 http://weblogs.asp.net/paullitwin/visual-studio-2013-asp-net-mvc-5-scaffolded-controls-and-bootstrap として Paul Litwin は次のように述べています。

はい、Microsoft は何らかの理由で、すべての入力、選択、およびテキスト領域コントロールの最大幅を 280 ピクセルに設定しています。この背後にある動機は定かではありませんが、これを変更するか、フォーム コントロールを他の CSS クラスに割り当ててこれをオーバーライドするまで、コントロールは 280px より広くすることはできません。

/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
    max-width: 280px;
}

したがって、あなたが実用的な場合は、最大幅をたとえば 600px に変更します

于 2015-06-24T20:49:33.963 に答える
6

ブートストラップ 3 で

@Html.EditorFor(model => model.PriceIndicatorDesc, new { htmlAttributes = new { @class = "form-control", @style = "width:280px" } })
于 2016-03-17T15:30:03.283 に答える
2

CSS 属性に「!important」を追加して、TextBoxFor のデフォルトを確実にオーバーライドする必要がある場合があります。例: width:50px !important;

于 2011-10-11T10:57:19.667 に答える
0

通常の CSS ルール外のカスタム幅が必要で、エディター テンプレートを使用している場合は、次のことができます。

<%=Html.EditorFor(m => m.Name, new { Width = 50})%>

次に、文字列のエディター テンプレートで、これをテンプレートに追加します。

@Html.TextBox(s => {
...
    if (ViewBag.Width != null )
    {
       s.Width = ViewBag.Width;
    }
 }).Bind(Model).GetHtml()
于 2013-04-24T22:27:59.667 に答える
-1

上記の回答は「はい」と「いいえ」です。開発ツールを使用して、使用されているスタイルを確認し、それらを変更する必要があります。最大幅、幅がある場合があります。次に、独自の !important css を作成して適用します。私の場合:

<style>
    textarea,
    input[type='text'],
    .form-group,
    .form-group-lg,
    .form-horizontal,
    .form-control,     
    .text-box,
    .single-line,
    .multi-line{
        width: 800px !important;
        max-width: 1000px !important;
    }
    .multi-line{
        height: 300px !important;
    }
    .form-horizontal{
        position:absolute;
        padding-left:15%;
    }
</style>

添付の画像結果を参照してください。

ここに画像の説明を入力

于 2016-09-07T17:50:38.530 に答える