为什么我的GridView没有填充?

0 c# asp.net gridview

如果我将autogenerate设置为true,它将填充.但我不需要那个.

<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false"></asp:GridView>


protected void submitButton_Click(object sender, EventArgs e)
    {
        Database db = DatabaseFactory.CreateDatabase("ConnectionString");
        DataTable dt = new DataTable();
        DataColumn dc;
        DataSet ds = new DataSet();

        try
        {
            DbCommand dbCommand = db.GetStoredProcCommand("sel_ResultByID_p");
            db.AddInParameter(dbCommand, "@pID", DbType.Int16, _id);
            ds = db.ExecuteDataSet(dbCommand);

            dc = new DataColumn();
            dc.ColumnName = "FullName";
            dt.Columns.Add(dc);

            DataRow dr;
            dr = dt.NewRow();
            dr["FullName"] = ds.Tables[0].Rows[0]["FullName"];

            dt.Rows.Add(dr);

            Gridview2.DataSource = ds;
            Gridview2.DataBind();
        }

        catch(Exception ex)
        {

        }
    }
Run Code Online (Sandbox Code Playgroud)

Adr*_*iro 5

你必须要么设定

AutoGenerateColumns="true"
Run Code Online (Sandbox Code Playgroud)

或手动指定gridview列,如下所示:

<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="FullName" HeaderText="Full Name" />
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

你没有做任何事.

更新

这就是你在后面的代码中做到的方式:

BoundField bf = new BoundField();
bf.DataField = "YourFieldName";
bf.HeaderText = "Your Header";
Gridview2.Columns.Add(bf);
Run Code Online (Sandbox Code Playgroud)