Je suis en train de modifier le modèle de page par défaut "Edit.aspx" utilisé par ASP.NET Dynamic Data et d'ajouter des contrôles supplémentaires. Je sais que je peux trouver le type d'objet en cours d'édition en regardant DetailsDataSource.GetTable().EntityType
, mais comment puis-je voir l'objet lui-même? Puis-je également modifier les propriétés de l'objet et indiquer au contexte de données de soumettre ces modifications?Accès à l'objet/ligne en cours de modification dans Dynamic Data
Répondre
Peut-être avez-vous déjà trouvé une solution, mais j'aimerais partager mon opinion là-dessus.
Il s'est avéré être un bon pita, mais j'ai réussi à obtenir la ligne d'édition. J'ai dû extraire le DetailsDataSource WhereParameters, puis créer une requête en cours d'exécution.
Le code ci-dessous fonctionne pour les tables avec une seule clé primaire. Si vous avez des clés composées, je suppose, il faudra modifications:
Parameter param = null;
foreach(object item in (DetailsDataSource.WhereParameters[0] as DynamicQueryStringParameter).GetWhereParameters(DetailsDataSource)) {
param = (Parameter)item;
break;
}
IQueryable query = DetailsDataSource.GetTable().GetQuery();
ParameterExpression lambdaArgument = Expression.Parameter(query.ElementType, "");
object paramValue = Convert.ChangeType(param.DefaultValue, param.Type);
Expression compareExpr = Expression.Equal(
Expression.Property(lambdaArgument, param.Name),
Expression.Constant(paramValue)
);
Expression lambda = Expression.Lambda(compareExpr, lambdaArgument);
Expression filteredQuery = Expression.Call(typeof(Queryable), "Where", new Type[] { query.ElementType }, query.Expression, lambda);
var WANTED = query.Provider.CreateQuery(filteredQuery).Cast<object>().FirstOrDefault<object>();
Si c'est un objet DD vous pourrez peut-être utiliser FieldTemplateUserControl.FindFieldTemplate (ControlId). Ensuite, si vous en avez besoin, vous pouvez le transformer en ITextControl pour manipuler des données.
Sinon, essayez d'utiliser cette méthode d'extension pour trouver le contrôle enfant:
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;
}
J'ai trouvé une autre solution, les autres ne fonctionnent pas.
Dans mon cas, j'ai copié Edit.aspx dans/CustomPages/Devices/
Où Périphériques est le nom de la table pour laquelle je veux ce comportement personnalisé.
Ajouter ce dans Edit.aspx -> Page_Init()
DetailsDataSource.Selected += entityDataSource_Selected;
Ajouter ceci dans Edit.aspx:
protected void entityDataSource_Selected(object sender, EntityDataSourceSelectedEventArgs e)
{
Device device = e.Results.Cast<Device>().First();
// you have the object/row being edited !
}
changer simplement l'appareil à votre propre nom de table.
- 1. ASP.NET Dynamic Data & Membership (Rôles)
- 2. Masquer une colonne dans ASP.NET Dynamic Data
- 3. Activation de la modification du champ de clé primaire dans ASP.NET Dynamic Data/LINQ to SQL
- 4. Ordre des champs dans Dynamic Data?
- 5. Reporting Service 2005: Dynamic Data Set
- 6. Entity Framework, Dynamic Data et Versioning
- 7. Répertoire Dynamic Data App_code - où est-ce?
- 8. Accès à HttpApplicationState au cours de Session_End
- 9. Ajout d'une connexion à une application Dynamic Data d'asp.net
- 10. Asp.Net Global.asax accès à l'objet Page en cours demandé
- 11. Utilisation du site ASP.NET Dynamic Data sur Windows XP IIS?
- 12. ASP.NET Dynamic Data DisplayColumn Attribut Causer Tri Problème
- 13. Modification de la langue de NSLocalizedString() en cours d'exécution
- 14. ASP.net Dynamic Data - OnPropertyChanging Non Mise à jour des autres colonnes
- 15. Dans une page personnalisée Dynamic Data, comment puis-je récupérer l'objet récemment mis à jour?
- 16. Définition de la valeur du champ de service dans Dynamic Data
- 17. Comment implémenter la sécurité basée sur les rôles à l'aide de Dynamic Data et Active Directory?
- 18. Comment faire pour que LINQ to SQL utilise une chaîne de connexion en cours de modification?
- 19. À quel point ASP.NET Dynamic Data fonctionne-t-il avec Nhibernate aujourd'hui?
- 20. Comment puis-je me connecter au "moteur" de rendu de l'interface utilisateur d'ASP.NET Dynamic Data?
- 21. Comment authentifier les utilisateurs qui entrent dans la zone d'administration Dynamic Data du site ASP.NET MVC?
- 22. valeur Accès/modification jquery attribut d'un élément
- 23. accès à un objet à partir d'une application Windows en cours d'exécution dans le plateau de système
- 24. Comment puis-je modifier l'ordre des colonnes affichées dans Dynamic Data?
- 25. Site en cours de visualisation
- 26. Accès par programme/ajout/modification de sonneries de contacts
- 27. Dynamic Datatemplate dans WPF
- 28. jqGrid avec dynamic colModel?
- 29. Win32: Surveillance des fichiers en cours de création ou de modification
- 30. Projet de déploiement Web avec un .config de remplacement en cours de modification
Quand est-ce que vous essayez d'accéder à l'objet actuel? – RSolberg
Y a-t-il un événement DataBound que vous pouvez utiliser? – hunter