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)
{
}
}
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);
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.
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>
精彩评论