10

私は WebForms .NET 4.5 と asp:ListView とモデル バインディングを使用しています。その中で私は以下を使用しています:

<EditItemTemplate>
<InsertItemTemplate>

コントロールの外観を定義します。ただし、99% の場合、これらのレイアウトは同一です。INSERT と EDIT の両方に 1 つを使用する方法はありますか? または、HTML を一度定義してどちらかで使用できる別のアプローチはありますか?

私は使用していません<asp:DynamicControl>が、通常<asp:texbox>などなので、.NET 4.5 WebForms は信じていません: FormView で 3 つのテンプレートすべてを (まだ) 指定する必要がありますか? 適用されます。

私はすでにユーザーコントロールを試しました。また、コンテンツが含まれている間、挿入/編集中のオブジェクトに新しい値が適用されないという点で、モデル バインディングが壊れています。

ソリューションの更新:

INSERT TEMPLATE を使用しないフォーム ビューの宣言:

 <asp:FormView ID="fvData" runat="server"
        ItemType="DataLayer.Models.Country"
        DataKeyNames="Id"
        InsertMethod="InsertRecord"
        SelectMethod="BindData"
        UpdateMethod="UpdateRecord"
        OnDataBound="fvData_DataBound">
        <EditItemTemplate>
            <b>EDIT</b>   
            <div class="row">
                <div class="form-group">
                    <label class="col-md-4 control-label" for="txtCountryName">Name</label>
                    <div class="col-md-8">
                        <asp:TextBox runat="server" ID="txtCountryName" name="txtCountryName" placeholder="My Country" CssClass="form-control" Text='<%#: BindItem.Name %>'></asp:TextBox>
                        <dav:DataAnnotationsValidator CssClass="label label-danger" ID="davSchoolName" runat="server" ValidationGroup="Default" MetadataSourceID="msCountryInformation" ControlToValidate="txtCountryName" ObjectProperty="Name" Display="Dynamic" />
                    </div>
                </div>
            </div>
        </EditItemTemplate>
    </asp:FormView>

その後:

protected void Page_Init()
{
    if (!IsPostBack)
    {
        fvData.InsertItemTemplate = fvData.EditItemTemplate;
    }
}

ここでは、INSERT にも EDIT テンプレートを使用しています。

4

2 に答える 2

3

あなたの最善の策はListView、あなた自身の習慣を開発することです.

1 つのテンプレートを使用し、そのテンプレートを別initのテンプレートListViewに使用します。ボタンをカスタマイズして、いずれかのモードにsave切り替える必要がある場合もあります。CommandName

ここに記載されているコードは、前述の方向にあなたを導きます。

https://stackoverflow.com/a/2202850/1355315

あなたの問題はこのスレッドと同じだと思います。

于 2013-11-26T08:24:31.063 に答える