asp datalist任何人都可以详细解释

时间:2013-10-19 13:45:27

标签: c# asp.net datalist

我还是asp.net的新手。我有一些问题,我想问一下,我来自php和c ++。

第一个问题。在html或aspx里面。如果我想编写c#代码,通常< %%>应该工作,但底层3之间有什么不同。

<% %>
<%@ 
<%# %>

Container.DataItem来自Datalist的DataSource。

其次,代码底部给我错误。因此,我想作一个解释。在c ++中我觉得合法。错误无效的争论?从msdn Eval应该返回对象或字符串

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

3 个答案:

答案 0 :(得分:2)

这些被称为内联服务器标签,基本上用于它们;

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

这两个链接具有确切定义/语法的良好示例。 Link1 Link2

对于第二个问题,我认为这就足够了

visible='<%# DisplaySpace(Eval("product_id")) %>'

答案 1 :(得分:0)

您的方法需要字符串,因此将发送参数转换为字符串

visible = '<%# DisplaySpace(System.Web.UI.DataBinder.Eval(Container.DataItem, "product_id").ToString())%>' 

答案 2 :(得分:0)

回答你的问题:

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")); %>'
相关问题