1

グリッドビューが自動生成されたテーブルによってコードビハインドでバインドされている場合、グリッドビューに2つの列のみを表示するにはどうすればよいですか?現在、2つだけ表示したいのに、6つの列が表示されますか?

これが私の.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
4

3 に答える 3

2

必要以上のデータがあるという事実は無視してください。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;
于 2012-09-07T04:17:44.640 に答える
1

デフォルトでは、グリッドはデータソースのすべての列(パブリックブラウズ可能プロパティ)を表示しようとします。2つだけ表示する場合は、次のようにオフにする必要があります。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
       <columns>
          <asp:boundfield datafield="Drug" headertext="ddddrug"/>
          <asp:boundfield datafield="date" headertext="ddddate"/>
       </columns>
</asp:GridView>
于 2012-09-07T04:21:07.603 に答える
1

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も適用します。

于 2012-09-07T04:26:29.820 に答える