如果我将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)
{
}
}
答案 0 :(得分:5)
您必须设置
AutoGenerateColumns="true"
或手动指定gridview列,如下所示:
<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="FullName" HeaderText="Full Name" />
</Columns>
</asp:GridView>
你没有。
<强>更新强>
这就是您在后面的代码中执行此操作的方法:
BoundField bf = new BoundField();
bf.DataField = "YourFieldName";
bf.HeaderText = "Your Header";
Gridview2.Columns.Add(bf);
答案 1 :(得分:0)
点击是否异步完成?如果没有,那么你基本上是在做一个帖子,但是你的数据在点击功能执行后就消失了,所以你的页面只是重新加载,没有数据。
答案 2 :(得分:0)
如果关闭“自动生成列”,则可以使用模板列
指定要显示的列例如。
<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>