1. 程式人生 > >ASP.NET中,HiddenField隱藏控制元件的用法

ASP.NET中,HiddenField隱藏控制元件的用法

HiddenField控制元件就是隱藏輸入框的伺服器控制元件,他能讓你儲存那些不必顯示在頁面上的且對安全性需求不高的資料。也許這個時候應該有這麼一個疑問,為什麼有了ViewState、Session和Cookie等狀態儲存機制,還需要用起HiddenField呢?

增加HiddenField,其實是為了讓整個狀態管理機制的應用程度更加全方面。因為不管是ViewState、Cookie還是Session,都有其失效的時候,比如使用者因某種需求設定ViewState為false,或環境條件限制使用Cookie,或使用者長時間沒有動作導致Session過期等等,那這個時候HiddenField無疑是最佳選擇。

 一般可以用於排序方式的選擇:

如前臺程式碼:

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" ShowPageIndexBox="Always" 
        PageIndexBoxType="DropDownList" TextBeforePageIndexBox="轉到:" HorizontalAlign="Center"
        PageSize="20" AlwaysShow="True" OnPageChanged="AspNetPager1PageChanged"
        CssClass="pagination" CurrentPageButtonClass="active" 
        ShowCustomInfoSection="Right"
        CustomInfoHTML="當前第%CurrentPageIndex%/%PageCount%頁 共%RecordCount%條記錄 每頁%PageSize%條">
</webdiyer:AspNetPager>
        <asp:HiddenField runat="server" ID="SortType"/>
        <asp:HiddenField runat="server" ID="SortField"/>

後臺載入資料的部分程式碼:

private void LoadData()
        {
            int count;
            int pagesize = AspNetPager1.PageSize;
            var pageIndex = AspNetPager1.CurrentPageIndex;
            string order = "CreatedOn";
            //排序選擇
            if (!string.IsNullOrEmpty(SortField.Value))//SortField為隱藏控制元件
            {
                order = SortField.Value;
            }
            if (SortType.Value == "asc")//SortOrder為隱藏控制元件,正序
            {
                _sortOrder = SortOrder.Ascending;
            }
            var list = _chemicalAdapter.FetchChemicals(_Name.Text,_Number.Text,null, pageIndex,
                pagesize, order, _sortOrder, out count);
            AspNetPager1.RecordCount = count;
            _ProjectGrid.DataSource = list;
            _ProjectGrid.DataBind();
        }