0

プロジェクト名と顧客名を記録する動的データ サイトがあります。挿入ページは正常に機能しますが、編集ページは編集フィールドを複製します。したがって、編集ページには次のようになります。

プロジェクト名:[テキストボックス]

プロジェクト名:1 [テキストボックス]

ただし、挿入ページには問題ありません。

プロジェクト名:[テキストボックス]

何か案は?

動的データ aspx ページ コードは次のとおりです。

<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
    <DataControls>
        <asp:DataControlReference ControlID="FormView1" />
    </DataControls>
</asp:DynamicDataManager>

<h2 class="DDSubHeader">Edit Project</h2>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
            HeaderText="List of validation errors" CssClass="DDValidator" />
        <asp:DynamicValidator runat="server" ID="DetailsViewValidator" ControlToValidate="FormView1" Display="None" CssClass="DDValidator" />

        <asp:FormView runat="server" ID="FormView1" DataSourceID="DetailsDataSource" DefaultMode="Edit"
            OnItemCommand="FormView1_ItemCommand" OnItemUpdated="FormView1_ItemUpdated" RenderOuterTable="false">
            <EditItemTemplate>
                <table id="detailsTable" class="DDDetailsTable" cellpadding="6">
                    <asp:DynamicEntity ID="DynamicEntity1" runat="server" Mode="Edit" />
                    <tr class="td">
                        <td colspan="2">
                            <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update" Text="Update" />
                            <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
                        </td>
                    </tr>
                </table>
            </EditItemTemplate>
            <EmptyDataTemplate>
                <div class="DDNoItem">No such item.</div>
            </EmptyDataTemplate>
        </asp:FormView>

        <asp:LinqDataSource ID="DetailsDataSource" runat="server" EnableUpdate="true" />

        <asp:QueryExtender TargetControlID="DetailsDataSource" ID="DetailsQueryExtender" runat="server">
            <asp:DynamicRouteExpression />
        </asp:QueryExtender>
    </ContentTemplate>
</asp:UpdatePanel>

コードビハインドは次のとおりです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.DynamicData;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Halcyonetic.TimeService.Web.DynamicData.CustomPages.Projects
{
public partial class Edit : System.Web.UI.Page
{
    protected MetaTable table;

    protected void Page_Init(object sender, EventArgs e)
    {
        table = DynamicDataRouteHandler.GetRequestMetaTable(Context);
        FormView1.SetMetaTable(table);
        DetailsDataSource.EntityTypeName = table.EntityType.AssemblyQualifiedName;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Title = table.DisplayName;

    }

    protected void FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)
    {
        if (e.CommandName == DataControlCommands.CancelCommandName)
        {
            Response.Redirect(table.ListActionPath);
        }
    }

    protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
    {
        if (e.Exception == null || e.ExceptionHandled)
        {
            Response.Redirect(table.ListActionPath);
        }
    }
}
}

ここに私のデータ注釈があります:

[MetadataType(typeof(ProjectMetadata))]
[ScaffoldTable(true)]
public partial class Project
{
}

[DisplayName("Projects")]
public partial class ProjectMetadata
{
    [Display(Name = "Project Name", Order = 1)]
    [ScaffoldColumn(true)]
    public object ProjectName { get; set; }

    [Display(Name = "Customer", Order = 2)]
    [ScaffoldColumn(true)]
    [UIHint("Customer")]
    public object Company { get; set; }
}
4

1 に答える 1

0

あなたが投稿したものは、標準の動的データ コードのように見えますが、DBML または EDX ファイル内の関係 (関連付けとしてマップされている) を詳しく調べたい場合があります。編集テンプレートが二重に関連付けられているように見えます....これは非常に奇妙です。申し訳ありませんが、これは具体的ではありませんが、おそらく役立つでしょう。

于 2012-09-25T23:01:01.163 に答える