3

ASP.NET 動的データで使用される "Edit.aspx" 既定のページ テンプレートを変更し、いくつかのコントロールを追加しています。を見て編集中のオブジェクトの種類がわかることはわかっていますがDetailsDataSource.GetTable().EntityType、実際のオブジェクト自体を確認するにはどうすればよいでしょうか。また、オブジェクトのプロパティを変更して、データ コンテキストにそれらの変更を送信するように指示することはできますか?

4

3 に答える 3

0

DD オブジェクトの場合は、FieldTemplateUserControl.FindFieldTemplate(controlId) を使用できる場合があります。次に、必要に応じて、データを操作するために ITextControl としてキャストできます。

それ以外の場合は、この拡張メソッドを使用して子コントロールを見つけてみてください。

    public static T FindControl<T>(this Control startingControl, string id) where T : Control
    {
        T found = startingControl.FindControl(id) as T;

        if (found == null)
        {
            found = FindChildControl<T>(startingControl, id);
        }

        return found;
    }
于 2009-06-12T23:28:07.137 に答える
0

別の解決策を見つけましたが、他の解決策は機能しませんでした。
私の場合、Edit.aspx を /CustomPages/Devices/ にコピーしました。
ここで、 Devicesは、このカスタム動作が必要なテーブルの名前です。

これを Edit.aspx に追加 -> Page_Init()

DetailsDataSource.Selected += entityDataSource_Selected;

これを Edit.aspx に追加します。

protected void entityDataSource_Selected(object sender, EntityDataSourceSelectedEventArgs e)
{
    Device device = e.Results.Cast<Device>().First();       
    // you have the object/row being edited !
}

Device を独自のテーブル名に変更するだけです。

于 2015-07-24T02:42:00.493 に答える