利用動態載入模板,配合ajax實現無重新整理操作

來源:互聯網
上載者:User
利用動態載入模板,配合ajax實現無重新整理操作

關鍵字:DataGrid 動態模板 Ajax

我們使用ajax實現無重新整理介面時,對於DataGrid,Repeater等列表還是比較麻煩的,經過我的嘗試,找出一種比較合理的方法,可以免除對html的加工處理,隨時擷取到資料列表的HTML content,並且列表格式使用模板,更加容易維護,閱讀

原理是將模板寫入使用者控制項,使用LoadTemplate來載入,然後將其賦給DataGrid或Repeater等控制項,綁定後輸出HTML到用戶端

.aspx.cs
[AjaxPro.AjaxMethod]
public string GetListHTML(string old)
{
    Repeater rpt = new Repeater();
    ITemplate temp = Page.LoadTemplate("webusercontrol1.ascx");
    rpt.ItemTemplate = temp;
    rpt.DataSource = Albums.GetFolderList(1);
    rpt.DataBind();

    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    System.IO.StringWriter sw = new System.IO.StringWriter(sb);
    HtmlTextWriter writer = new HtmlTextWriter(sw);
    rpt.RenderControl(writer);
    sw.Flush();
    writer.Close();
    sw.Close();

    Response.Write(sb.ToString());
}

webusercontrol1.ascx<%@ Control Language="C#" %>
<%# DataBinder.Eval(((RepeaterItem)Container).DataItem, "folderName")%><br />

上面就是列表的全部代碼, js端只需調用 類名.GetListHTML 即可快速擷取模板化的列表了。

對應DataGrid,可以增加TemplateCollumn等方法來模板化

webusercontrol1.ascx
webusercontrol1.ascx<%@ Control Language="C#" %>
<%# DataBinder.Eval(((DataGridItem)Container).DataItem, "folderName")%><br />

.aspx.cs 部分代碼:

        DataGrid DataGrid1 = new DataGrid();
        ITemplate temp = Page.LoadTemplate("webusercontrol1.ascx");
        TemplateColumn tc = new TemplateColumn();
        tc.HeaderText = "Test";
        tc.ItemTemplate = temp;
        DataGrid1.Columns.Add(tc);
        DataGrid1.AutoGenerateColumns = false;
        DataGrid1.DataSource = Albums.GetFolderList(1);

        DataGrid1.DataMember = "id";
        DataGrid1.DataBind();

全文完

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.