2017-04-17 7 views
0

私はaspxページ内のコードを以下とマスターページからその継承しているリミットDataGridViewの列

<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つの列すべてを表示しています。

これを制限するにはどうすればよいですか?私は データベース部分にアクセスできず、すべてのレコードを取得していません。データ表を使用して データを表示します。

答えて

0

あなたは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> 
0

あなたはそれらを隠すためにColumns.Visibleを使用することができます。

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