前端數據綁定的問題

ASP.NET 前端數據綁定---<%#%>及Eval()的使用

ASP.NET 前端html代碼中會經常出現的<%%>的代碼,裏面的文本其實就是不能直接輸出到客戶端瀏覽器的文本,是需要服務器解釋的。

在ASP中,<%%>裏面的文本是vbscript或者javascript代碼,在ASP.NET中,<%%>裏面的文本就是.net平臺下支持的語言。

具體有三種:<%%>,<%#%>,<%=%>,後兩種主要是用於asp.net前端數據綁定的。

一 、<%=%>

在.aspx頁面,<%= %>標籤可以調用後臺.CS的變量/屬性或者方法,不過被調用的變量或方法必須是public的。
例:Default.cs文件裏面有:

public string str = "test";

public string ReturnStr()  
{
  return "test";
}

 那麼前端Default.aspx文件裏面就可以這樣寫:

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

 

二、<%#%>
前端aspx頁面中,一幫服務器控件數據綁定的語法,結合Eval()方法綁定數據源(ASP.NET 提供了一個名爲 DataBinder.Eval 的靜態方法,該方法計算後期綁定的數據綁定表達式,並將結果格式化爲字符串(可選)。利用此方法,可以避免許多在將值強制爲所需數據類型時必須執行的顯式強制轉換操作,DataBinder.Eval需要使用參數來指定容器)

例:Repeater控件,在Page_Load()方法中,加載數據:

後臺:

複製代碼

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            intopage(DropDownListMgrDate.SelectedValue.ToString());
            //不會每次刷新頁面都重新綁定數據
        }
        
    }

複製代碼

複製代碼

    private void intopage(string Batchid)
    {
            this.Repeater1.DataSource = dmgr.GetCBProduct_MgrList(this.AspPage.CurrentPageIndex, AspPage.PageSize,Batchid);//CurrentPageIndex:當前頁索引值;PageSize:分頁每頁所能容納值
            this.Repeater1.DataBind();
    }

複製代碼

這裏,Repeater1.DataSource的數據源既可以是DataSet,也可以是List,這裏是List,對應前端DataBinder.Eval方法的參數是:ColumnName/屬性名稱

前端:

複製代碼

                        <td>
                            <%#DataBinder.Eval(Container.DataItem, "include_in_quantity")%>
                        </td>
                        <td title="<%#DataBinder.Eval(Container.DataItem, "part_description")%>">
                            <%#DataBinder.Eval(Container.DataItem, "part_description").ToString().Length>20?DataBinder.Eval(Container.DataItem, "part_description").ToString().Substring(0,20)+"...":DataBinder.Eval(Container.DataItem, "part_description").ToString()%>
                        </td>

複製代碼

這裏Eval()綁定數據時結合使用了三元運算符,如果字符長度大於20,就截取+“...”,當鼠標滑到目標處,就會顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章