gpt4 book ai didi

asp.net - 了解 ASP.NET Eval() 和 Bind()

转载 作者:行者123 更新时间:2023-12-03 03:19:13 25 4
gpt4 key购买 nike

任何人都可以向我展示一些绝对最小的 ASP.NET 代码来理解 Eval()Bind() 吗?

最好为我提供两个单独的代码片段或者可能是网络链接。

最佳答案

对于只读控件,它们是相同的。对于 2 路数据绑定(bind),使用要通过声明性数据绑定(bind)进行更新、插入等操作的数据源,您需要使用 Bind

想象一下,例如一个带有 ItemTemplateEditItemTemplate 的 GridView。如果您在 ItemTemplate 中使用 BindEval,则不会有任何区别。如果您在 EditItemTemplate 中使用 Eval,该值将无法传递给 DataSourceUpdate 方法code> 网格绑定(bind)到的。

<小时/>

更新:我想出了这个例子:

<%@ 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>

这是用作对象数据源的自定义类的定义:

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
}
}

关于asp.net - 了解 ASP.NET Eval() 和 Bind(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1778221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com