簡體   English   中英

網格視圖顯示數據表綁定后面的代碼中的2列

[英]grid view display 2 columns from code behind datatable binding

如果gridview綁定在自動生成的表后面的代碼中,我如何只在網格視圖中顯示兩個列? 現在,當我只想顯示兩列時,它會顯示六列?

這是我的.aspx頁面代碼:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server">

                <columns>
          <asp:boundfield datafield="Drug" headertext="ddddrug"/>
          <asp:boundfield datafield="date" headertext="ddddate"/>

        </columns>


        </asp:GridView>
    </div>
    </form>
</body>
</html>

這是代碼背后的代碼:

Imports System.Data

Partial Class Default2
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    ' auto generated table
        Dim table2 As New DataTable
        ' Create four typed columns in the DataTable.
        table2.Columns.Add("ID", GetType(Integer))
        table2.Columns.Add("Drug", GetType(String))
        table2.Columns.Add("Patient", GetType(String))
        table2.Columns.Add("Date", GetType(DateTime))
        ' Add five rows with those columns filled in the DataTable.
        table2.Rows.Add(25, "Indocin", "David", DateTime.Now)
        table2.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
        table2.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
        table2.Rows.Add(21, "Combivent", "Janet", DateTime.Now)
        table2.Rows.Add(1100, "Dilantin", "Melanie", DateTime.Now)
        table2.Rows.Add(125, "Indocin", "David", DateTime.Now)
        table2.Rows.Add(150, "Enebrel", "Sam", DateTime.Now)
        table2.Rows.Add(110, "Hydralazine", "Christoff", DateTime.Now)

        GridView1.DataSource = table2

        GridView1.DataBind()

    End Sub

    End Sub
End Class

忽略您擁有的數據超出了您的需求。 將AutoGenerateColumns設置為false。 為您需要顯示的列創建BoundColumns。 示例:

BoundColumn nameColumn = new BoundColumn();
nameColumn.DataField = "Drug";
nameColumn.DataFormatString = "{0}";
nameColumn.HeaderText = "Drug";

然后將此BoundColumn添加到gridview。

GridView1.Columns.Add(nameColumn);
GridView1.AutoGenerateColumns = false;

默認情況下,網格將嘗試顯示DataSource中的所有列(公共可瀏覽屬性)。 如果您只想顯示兩個,則應按如下方式將其關閉:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
       <columns>
          <asp:boundfield datafield="Drug" headertext="ddddrug"/>
          <asp:boundfield datafield="date" headertext="ddddate"/>
       </columns>
</asp:GridView>

將AutoGenerateColumns設置為false並將綁定字段設置為:

  <asp:BoundField DataField="Drug"  HeaderText="ddddrug" >
        <HeaderStyle CssClass="Your class" />
  </asp:BoundField>
  <asp:BoundField DataField="date" DataFormatString="{0:yyyy/MM/dd}"  HeaderText="ddddate" >
        <HeaderStyle CssClass="Your class" />
  </asp:BoundField>

如果您還想要,還可以在標題中應用CssClass。

暫無
暫無

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

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