/// <summary>
    /// 主要查詢方法
    /// </summary>
    /// <param name="page">頁數(預設為 1)</param>
    /// <param name="ExportMode">匯出模式。(預設為 false)若為真,則取消分頁。</param>
    private void Query(long page = 1, bool ExportMode = false)
    {
        sql.Append(String.Format("SELECT * FROM {0} WHERE 1=1", TableName));

        #region 將搜尋控制項的值轉換為 SQL Statement
        BackendSearchControl.ConvertControlToSQL(sql, SearchItems, plSearch, this.ViewState);
        #endregion

        sql.OrderBy("sID DESC");

        if (!ExportMode)
        {
            var data = db.Page <DataModel_a12SupauCheckin>(page, PageSize, sql);
            patwGridView1.DataSource = data.Items;
            patwGridView1.DataBind();

            AspNetPager1.PageSize    = (int)data.ItemsPerPage;
            AspNetPager1.RecordCount = (int)data.TotalItems;
            lbTotal.Text             = "依據條件,目前共有 " + data.TotalItems.ToString() + " 筆";
        }
        else
        {
            var data = db.Query <DataModel_a12SupauCheckin>(sql);
            patwGridView1.DataSource = data;
            patwGridView1.DataBind();

            AspNetPager1.Visible = false;
            lbTotal.Text         = "依據條件,目前共有 " + data.Count() + " 筆";
        }
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        BackendSearchControl.Control_Binding(this.ViewState, plSearch);

        AspNetPager1.CurrentPageIndex = 1;
        Query();
    }
    protected void patwGridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.ToLower() == "exporttoexcel")
        {
            BackendSearchControl.Control_Binding(this.ViewState, plSearch);

            AspNetPager1.CurrentPageIndex = 1;
            Query();
        }


        if (e.CommandName == "UpdatasValid")
        {
            db.Execute(String.Format("UPDATE {0} SET sValid=(sValid+1)%2 WHERE sID=@0", TableName), e.CommandArgument);
            Query(AspNetPager1.CurrentPageIndex);
        }
    }