簡體   English   中英

在ASP.NET中使用DataTable jQuery限制DatagridView列

[英]Limit DatagridView column using DataTable jquery in asp.net

我在aspx頁面中有以下代碼,它是從母版頁繼承的

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script type="text/javascript"  src="https://cdn.datatables.net/1.10.14/js/jquery.dataTables.min.js"></script>
    <link type="text/css" href="https://cdn.datatables.net/1.10.14/css/jquery.dataTables.min.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cntHeader" runat="server"></asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="cntContent" runat="server">
    <div class="table-responsive">
        <table id="myTable" class="table table-striped" >  
            <asp:GridView ID="gvState" runat="server" CssClass="gvdatatable" AutoGenerateColumns="true" >
                 <Columns>    
                     <asp:BoundField DataField="Supplier_Name" HeaderText="Name" ItemStyle-Width="150" />
                     <asp:BoundField DataField="Supplier_Email" HeaderText="Email" ItemStyle-Width="150" />
                 </Columns>
            </asp:GridView>
        </table>
    </div>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.gvdatatable').dataTable({});
        });
    </script>
</asp:Content>

我背后的代碼是

public partial class WebForm1 : System.Web.UI.Page
{
    clsSupplier objsupplier = new clsSupplier();
    protected void Page_Load(object sender, EventArgs e)
    {
        DataSet ds = objsupplier.GetAllSuppliers();
        gvState.DataSource = ds;
        gvState.DataBind();
        if (!IsPostBack)
        {
            this.gvState.ShowFooter = true;
            this.gvState.UseAccessibleHeader = true;
            gvState.HeaderRow.TableSection = TableRowSection.TableHeader;   
            gvState.FooterRow.TableSection = TableRowSection.TableFooter;
        }
    }
}

GetAllSuppliers包含所有數據。 它包含db中的8個字段和值,我不想顯示所有這8個字段及其值,而只顯示2個字段。

但是我在aspx頁面上寫的任何內容都行不通。 您可以看到我僅使用名稱和電子郵件,但是它顯示了數據庫表中的所有8列。

如何限制此asp.net頁面? 由於我無權訪問數據庫部分並獲取所有記錄。我使用數據表來顯示數據。

您可以使用Columns.Visible隱藏它們:

foreach (DataControlField dgc in gvState.Columns)
{
    if (!(dgc.HeaderText == "NAME") || !(dgc.HeaderText == "Email"))
    {
        dgc.Visible = false;
    }
}

您需要將AutoGenerateColumns設置為false。

<asp:GridView ID="gvState" runat="server" CssClass="gvdatatable" AutoGenerateColumns="false" >
    <Columns>
        <asp:BoundField DataField="Supplier_Name" HeaderText="Name" ItemStyle-Width="150" />
        <asp:BoundField DataField="Supplier_Email" HeaderText="Email" ItemStyle-Width="150" />
    </Columns>
</asp:GridView>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM