ASP数据列表任何人都可以详细解释
本文关键字:解释 都可以 任何人 数据 列表 ASP | 更新日期: 2023-09-27 18:36:00
我还是 asp.net 新手。我有一些问题想问,我来自php和c ++。
第一个问题。在 html 或 aspx 中。如果我想编写 c# 代码,通常 <% %> 应该可以工作,但底部 3 之间有什么区别。
<% %>
<%@
<%# %>
Container.DataItem 来自 Datalist 的 DataSource。
其次,代码的底部给了我错误。因此,我想给出一个解释。对我来说,在 c++ 中似乎是合法的。错误 参数无效?从 msdn 评估应返回对象或字符串
<div class="newPanel">
<asp:DataList ID="DataList_News" runat="server" CssClass="newPanel">
<ItemTemplate>
<div class="news"></div>
<div id="news_space" runat="server" visible="<%# DisplaySpace(System.Web.UI.DataBinder.Eval(Container.DataItem, "product_id")); %>"></div>
</ItemTemplate>
</asp:DataList>
</div>
public partial class CommonCx_captcha_displaynews : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
DataList_News.DataSource = MySqlManager.ExecuteSelectCommand("select * from news;");
DataList_News.DataBind();
}
public bool DisplaySpace(System.String id)
{
return false;
}
}
这些被称为内联服务器标签,基本上它们用于;
<% %> -- For embeding a code block
<%@ %> -- For defining a page directive
<%# %> -- For data binding
<%= %> -- For accessing a variable or return value of a method
<%$ %> -- For accessing AppSettings
<%-- --%> -- For commenting
这两个链接有很好的示例,具有精确的定义/语法。链接 1 和链接 2
对于第二个问题,我认为这就足够了
visible='<%# DisplaySpace(Eval("product_id")) %>'
您的方法需要字符串,因此将发送参数转换为字符串
visible = '<%# DisplaySpace(System.Web.UI.DataBinder.Eval(Container.DataItem, "product_id").ToString())%>'
回答你的问题:
1) 内联服务器标记用于将服务器代码写入标记:
<%= %> - is used to resolve an expression and return its value into the block.
<%@ %> - attributes used by the ASP.NET page parser and compiler.
<%$ %> - expression sintax to reuse code in the markup.
<%# %> - data binding syntax
2) 您必须在 aspx 中使用单引号括起 C# 代码,这就是您收到错误的原因:
'<%# DisplaySpace(System.Web.UI.DataBinder.Eval(Container.DataItem, "product_id")); %>'