[英]gridview using datatable in asp.net is not show every column
[英]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.