Reputation: 1
It will populate if I set autogenerate to true. But I do not need that.
<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)
{
}
}
Upvotes: 0
Views: 2181
Reputation: 58595
You have to either set
AutoGenerateColumns="true"
or specify the gridview columns manually, like this:
<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="FullName" HeaderText="Full Name" />
</Columns>
</asp:GridView>
You are doing none.
Update
This is how you'd do it in the code behind:
BoundField bf = new BoundField();
bf.DataField = "YourFieldName";
bf.HeaderText = "Your Header";
Gridview2.Columns.Add(bf);
Upvotes: 5
Reputation: 338
If you turn off Autogeneration of columns, you can specify which columns you want to display by using template columns
For Example.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="EmployeeID" DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="HireDate" HeaderText="HireDate" SortExpression="HireDate" />
</Columns>
</asp:GridView>
Upvotes: 0
Reputation: 1870
Is the click done asynchronously? If not then you are basically ending up doing a post but your data is gone after the click function executes and so your page is just reloaded with no data again.
Upvotes: 0