2017年9月4日 星期一

【ASP.NET Webform】Add html from code behind

有個需求要自己手工刻分頁,想用 Bootstrap 的 pagination 但中間的頁碼鈕必須動態決定產生幾個,所以變成在 postback 的時候要算完資料集分頁數在動態補按鈕進去。

aspx
一開始先用一個空的 ul 當容器,為了要在 codebehind 可以吃到,要 runat="server"
<ul runat="server" id="ulPagination" class="pagination"></ul>

code-behind
ulPagination.Controls.Clear();
string liFirst = 
@"<li class=""page-item"">
    <a class=""page-link"" aria-label=""First"" href=""javascript:__doPostBack('GoFirstPage','')"">
        <span aria-hidden=""true"">|«</span> 
        <span class=""sr-only"">First</span>
    </a>
</li>";
ulPagination.Controls.Add(new LiteralControl(liFirst));

liFirst 就是要寫的 html,除了 string 轉 LiteralControl 然後加到 Controls 外,也可以用 HtmlGenericControl 做比較有結構的操作,參考:SO

沒有留言:

張貼留言