Quelqu'un peut-il me montrer du code ASP.NET absolument minimal pour comprendre Eval()
et Bind()
?
Il est préférable que vous me fournissiez deux extraits de code distincts ou des liens Web.
Quelqu'un peut-il me montrer du code ASP.NET absolument minimal pour comprendre Eval()
et Bind()
?
Il est préférable que vous me fournissiez deux extraits de code distincts ou des liens Web.
Pour lire uniquement des contrôles qu'ils sont les mêmes. Pour les 2 voies de la liaison de données à l'aide d'une source de données dans laquelle vous souhaitez mettre à jour, insertion, etc avec déclarative de la liaison de données, vous devez utiliser Bind
.
Imaginez par exemple un GridView avec un ItemTemplate
et EditItemTemplate
. Si vous utilisez Bind
ou Eval
dans la ItemTemplate
, il n'y aura pas de différence. Si vous utilisez Eval
dans la EditItemTemplate
, la valeur ne sera pas en mesure d'être transmis à l' Update
méthode de DataSource
que la grille est lié.
Mise à JOUR: je suis venu avec cet exemple:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Data binding demo</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView
ID="grdTest"
runat="server"
AutoGenerateEditButton="true"
AutoGenerateColumns="false"
DataSourceID="mySource">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("Name") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="edtName"
runat="server"
Text='<%# Bind("Name") %>'
/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
<asp:ObjectDataSource
ID="mySource"
runat="server"
SelectMethod="Select"
UpdateMethod="Update"
TypeName="MyCompany.CustomDataSource" />
</body>
</html>
Et voici la définition d'une classe personnalisée qui sert de source de données d'objet:
public class CustomDataSource
{
public class Model
{
public string Name { get; set; }
}
public IEnumerable<Model> Select()
{
return new[]
{
new Model { Name = "some value" }
};
}
public void Update(string Name)
{
// This method will be called if you used Bind for the TextBox
// and you will be able to get the new name and update the
// data source accordingly
}
public void Update()
{
// This method will be called if you used Eval for the TextBox
// and you will not be able to get the new name that the user
// entered
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.