2009-06-24 7 views
0

J'ai un DataList qui est lié à un SQlDataSource. SQLDataSource renvoie une valeur de procédure stockée contenant la valeur d'indentité maximale dans une table.ASP .NET - Comment actualiser une DataList de base de données?

Sur la même page que la DataList, j'ai un DetailsView qui est utilisé pour ajouter de nouveaux enregistrements à la table.

Le problème est qu'après avoir ajouté un nouvel enregistrement à la table, la valeur Datalist affiche la valeur d'indentité précédente.

Comment faire pour que la page actualise automatiquement la liste de données?

Répondre

4

Appelez DataList.DataBind() dans la méthode de chargement de la page ou dans la méthode ItemInserted de la vue Details.

Par exemple:

void YourDetailsView_ItemInserted(object sender, 
DetailsViewInsertedEventArgs e) 
{ 
    // Refresh the DataList control after a new record is inserted 
    // in the DetailsView control. 
    YourDataList.DataBind(); 
} 

Et dans le balisage:

<asp:DetailsView id="YourDetailsView" runat="server" 
DataSourceID="YourSQLDataSourceID" OnItemInserted="YourDetailsView_ItemInserted"/> 
+0

Le Datalist ne parvient toujours pas rafraîchir après avoir essayé deux de vos suggestions. La liste sera actualisée lors de la modification d'une page différente dans la vue détaillée. –

+0

Ces deux éléments sont-ils dans différents UpdatePanels? Vous devrez peut-être définir un déclencheur sur le UpdatePanel contenant la liste à déclencher lorsque DetailsView insère un élément. –

+0

Je n'utilise aucun UpdatePanels. Le Datalist et DetailsView sont liés à deux sources de données différentes (même table de base). L'option de pagination de DetailsView déclenche-t-elle un événement? –

Questions connexes