Bonjour,
Le but de mon programme est de réaliser un chat en ASP.NET
Les technologies que j'utilise sont:
MySQL / ADO.ET Connector 6.2.2
J'aimerais être cable de binding un control ListView avec EntityDataSource. Le problème: Je ne suis pas capable lors du runtime de voir le contenu de ma table MySQL et refraichir la page lors d'une modification de mon model (BD MySQL)
Est-ce que vous pouvez m'aider ?
Merci
Voici mon code ASPX :
Code ASP.NET :
<div id="scroll" style="overflow:auto;height:300px;">
<asp:ListView ID="ListViewChat" runat="server" DataSourceID="EntityDataSource">
<ItemTemplate>
<span style="background-color: #DCDCDC;color: #000000;">pseudo:
<asp:Label ID="pseudoLabel" runat="server" DataText="pseudo" Text='<%# Eval("pseudo") %>' />
<br />
time:
<asp:Label ID="timeLabel" runat="server" DataText="time" Text='<%# Eval("time") %>' />
<br />
message:
<asp:Label ID="messageLabel" runat="server" DataText="message" Text='<%# Eval("message") %>' />
<br />
<br />
</span>
<%-- <asp:Label ID="Label1" runat="server" DataText="pseudo" Text='<%# Eval("pseudo") %>' />
<br />
time:
<asp:Label ID="Label2" runat="server" DataText="time" Text='<%# Eval("time") %>' />
<br />
message:
<asp:Label ID="Label3" runat="server" DataText="message" Text='<%# Eval("message") %>' />
<br />
<br />
</span>--%>
</ItemTemplate>
<AlternatingItemTemplate>
<span style="background-color: #FFF8DC;">pseudo:
<asp:Label ID="pseudoLabel" runat="server" DataText="pseudo" Text='<%# Eval("pseudo") %>' />
<br />
time:
<asp:Label ID="timeLabel" runat="server" DataText="time" Text='<%# Eval("time") %>' />
<br />
message:
<asp:Label ID="messageLabel" runat="server" DataText="message" Text='<%# Eval("message") %>' />
<br />
<br />
</span>
</AlternatingItemTemplate>
<EmptyDataTemplate>
<span>Aucune donnée n'a été retournée.</span>
</EmptyDataTemplate>
<InsertItemTemplate>
<span style="">pseudo:
<asp:TextBox ID="pseudoTextBox" runat="server" Text='<%# Bind("pseudo") %>' />
<br />
time:
<asp:TextBox ID="timeTextBox" runat="server" Text='<%# Bind("time") %>' />
<br />
message:
<asp:TextBox ID="messageTextBox" runat="server" Text='<%# Bind("message") %>' />
<br />
<asp:Button ID="InsertButton" runat="server" CommandName="Insert"
Text="Insérer" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Désactiver" />
<br />
<br />
</span>
</InsertItemTemplate>
<LayoutTemplate>
<div ID="itemPlaceholderContainer" runat="server"
style="font-family: Verdana, Arial, Helvetica, sans-serif;">
<span ID="itemPlaceholder" runat="server" />
</div>
<div style="text-align: center;background-color: #CCCCCC;font-family: Verdana, Arial, Helvetica, sans-serif;color: #000000;">
</div>
</LayoutTemplate>
<EditItemTemplate>
<span style="background-color: #008A8C;color: #FFFFFF;">pseudo:
<asp:TextBox ID="pseudoTextBox" runat="server" Text='<%# Bind("pseudo") %>' />
<br />
time:
<asp:TextBox ID="timeTextBox" runat="server" Text='<%# Bind("time") %>' />
<br />
message:
<asp:TextBox ID="messageTextBox" runat="server" Text='<%# Bind("message") %>' />
<br />
<asp:Button ID="UpdateButton" runat="server" CommandName="Update"
Text="Mettre à jour" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Annuler" />
<br />
<br />
</span>
</EditItemTemplate>
<SelectedItemTemplate>
<span style="background-color: #008A8C;font-weight: bold;color: #FFFFFF;">
pseudo:
<asp:Label ID="pseudoLabel" runat="server" Text='<%# Eval("pseudo") %>' />
<br />
time:
<asp:Label ID="timeLabel" runat="server" Text='<%# Eval("time") %>' />
<br />
message:
<asp:Label ID="messageLabel" runat="server" Text='<%# Eval("message") %>' />
<br />
<br />
</span>
</SelectedItemTemplate>
</asp:ListView>
<asp:EntityDataSource ID="EntityDataSource" runat="server"
ConnectionString="name=MathSQLEntities" DefaultContainerName="MathSQLEntities"
EntitySetName="ChatMessage" Select="it.[pseudo], it.[time], it.[message]">
</asp:EntityDataSource>
Voici le code C# :
Code C# :
public partial class WebForm3 : System.Web.UI.Page
{
private MathSQLEntities _context = new MathSQLEntities();
private EAL _eal = new EAL(); // classe externe ( Entity Access Layer )
protected void Page_Load(object sender, EventArgs e)
{
UpdateListMessage();
_context.SavingChanges += new EventHandler(context_SavingChanges);
}
protected void UpdateListMessage()
{
string session = "SessionTest"; // nom de session
var query = _eal.GetMessages(session); // requete de création de session
ListViewChat.DataSource = null;
if (query != null)
{
this.ListViewChat.DataSource = query;
this.ListViewChat.DataBind();
this.ListViewChat.Visible = true;
}
else
{
this.ListViewChat.DataSource = "Impossible de se connecter au serveur";
this.ListViewChat.DataBind();
this.ListViewChat.Visible = true;
}
}
/// <summary>
/// Update le listview du chat automatiquement quand il y a un chagment dans la BD
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
protected void context_SavingChanges(Object sender, EventArgs args)
{
UpdateListMessage();
}
}