0

ASP.NET 4.5 Web フォーム FormView 内に EditItemTemplate があります。FormView に ItemType を設定したので、DynamicControls を使用してフィールドを表示および編集しています。

<asp:FormView runat="server" ItemType="FooModel">
    <EditItemTemplate>
        <asp:DynamicControl runat="server" ID="message" DataField="Message" Mode="Edit" />
    </EditItemTemplate>
</asp:FormView>

これは、ItemType プロパティに DataType を設定して複数行にするまでは問題ないようです。

public class FooModel
{
    [DataType(DataType.MultilineText)]      
    public string Message { get; set; }
}

これでも、標準のテキスト入力が得られます。何か案は?

私はそれを回避することができました

<asp:TextBox ID="Message" Text='<%# Bind("Message") %>' runat="server" TextMode="MultiLine" />

...しかし、私のプロパティのデータ型から推測する方が良いでしょう。

ありがとう

4

1 に答える 1

0

動的データ フィールド テンプレートを手動で編集できます。必要なのは、次OnInitText_Edit.ascx制御チェックインを行うことだけです。

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);

    if(Column.DataTypeAttribute.DataType == DataType.MultilineText)
        TextBox1.TextMode =  TextBoxMode.MultiLine;
}

ColumnFieldTemplateUserControlのプロパティは、モデル プロパティのメタデータに関するすべての情報を提供します。

于 2013-04-14T13:35:08.190 に答える