0

私はまだ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;
    }
}
4

3 に答える 3

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

これらの 2 つのリンクには、正確な定義/構文を含む良い例があります。リンク1とリンク 2

2番目の質問については、これで十分だと思います

visible='<%# DisplaySpace(Eval("product_id")) %>'
于 2013-10-19T14:01:32.400 に答える
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")); %>'
于 2013-10-19T14:09:43.113 に答える
0

メソッドは文字列を想定しているため、送信パラメーターを文字列に変換します

visible = '<%# DisplaySpace(System.Web.UI.DataBinder.Eval(Container.DataItem, "product_id").ToString())%>' 
于 2013-10-19T14:00:47.297 に答える