我知道如何在MVC做到这一点:如何将数据库字段绑定到ASP.NET 2.0中的HTML TITLE元素?
<title> <%= Model.Title %> </title>
我也知道如何一个SqlDataSource或ObjectDataSource控件绑定到窗体或ListView控件上。
但是,如何将我的SQLDataSource或ObjectDataSource中的字段直接渲染到HTML中?
我知道如何在MVC做到这一点:如何将数据库字段绑定到ASP.NET 2.0中的HTML TITLE元素?
<title> <%= Model.Title %> </title>
我也知道如何一个SqlDataSource或ObjectDataSource控件绑定到窗体或ListView控件上。
但是,如何将我的SQLDataSource或ObjectDataSource中的字段直接渲染到HTML中?
您可以声明一个属性并使用所需字段的值设置其值。
代码隐藏:
private string myTitle;
protected string MyTitle
{
get { return myTitle; }
set { myTitle = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
MyTitle = "Testing 123!";
}
标记:<title><%= MyTitle %></title>
可以使用Page.Title
属性设置在代码中的标题后面。
一旦您在您的数据源上运行了SelectCommand或同等功能,只需将Page.Title赋值给结果集即可。
或者,你可以用自己的aspx页面,只是在HTML中指定的文本字符串,像这样:
<title>
<%= dataSource.Select(...) %>
</title>
在的WebForms你仍然需要使用Web控件实现数据绑定的“容器“为你的领域。例如,一个GridView,Repeater,ListView,FormView或DetailsView。不幸的是,没有专门为折叠一行或一个对象而设计的WebControl。所以,你有一个选择:
使用中继是这样的:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="MyDataSource">
<ItemTemplate>
<%# Eval("MyProperty") %>
</ItemTemplate>
</asp:Repeater>
另一个alernative是不使用的数据源。相反,将属性添加到您的页面,然后将您的数据绑定到这些页面。例如,在你的页面代码隐藏:
public string MyPageProperty
{
get { return _myPageProperty; }
set { _myPageProperty = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
MyPageProperty = "This is some data";
}
然后就可以做到这一点在你的页面:
<div>The value is: <%= MyPageProperty %></div>
希望有所帮助。
啊,错过了明显!诚然,Page.Title是这种情况下最简单的方法。我的回复可能对其他页面元素有用,或者在多个位置使用属性值。 – 2009-07-19 18:54:19