天天看點

asp.net中關于<% %>、<%= %>的用法總結 .

1:在.aspx頁面,<% %>标簽相當于在.cs頁面的代碼,也就是說你在.cs檔案裡面怎樣寫,就可以在.aspx檔案裡面的<% %>标簽裡面怎樣寫。

2:在.aspx頁面,<%= %>标簽可以調用你的背景的變量或者方法等,不過被調用的方法必須是public的。

如果你的Default.cs檔案裡面有:

public string str = "調用背景方法!";

public string GetStr() 

{

    return "調用背景方法!";

}

那麼你的Default.aspx檔案裡面就可以這樣寫:

<asp:Label ID="Label2" runat="server" Text='<%=str%>'></asp:Label>

<asp:Label ID="Label1" runat="server" Text='<%= GetStr() %>'></asp:Label>

3:<%#Eval() %>與<%#Bind() %>,這兩者的使用方法非常相似,目前我隻發現一點差別:

相同點:

1,兩者都是綁定資料源的方法,比如說你想将資料庫中的某個字段綁定到頁面上的某個Label上,就有代碼:

<asp:Label ID="Label1" runat="server" Text='<%#Eval("pSex") %>'></asp:Label>或者

<asp:Label ID="Label1" runat="server" Text='<%#Bind("pSex") %>'></asp:Label>此時兩者的效果是一樣的。

不同點:

1:如果在綁定資料的同時還要調用背景(.cs檔案)的方法,舉個例子,需要綁到頁面上的字段資料太長,是以必須截斷,此時可以調用背景的方法來實作,例子部分代碼:

.cs檔案:

//字元太長将截斷,用“···”代替。

    public string Replace(string str)

    {

        if (str.Length > 20)

        {

            str = str.Substring(0, 10) + "···";

        }

        return str;

    }

.aspx檔案:

<asp:TextBox ID="TextBox2" runat="server" Text='<%# Replace(Eval("pPassWord").ToString()) %></asp:TextBox>

注意,此時隻能用Eval方法,因為Eval方法調用了.ToString()方法,而Bind卻不能調用此方法。。。