C# gridview中缺少数据
我创造了C# gridview中缺少数据,c#,asp.net-mvc,C#,Asp.net Mvc,我创造了 DataTable dt = new DataTable(); dt.Columns.Add("Type"); dt.Columns.Add("Address1"); dt.Columns.Add("Address2"); dt.Columns.Add("PostalCode"); dt.Columns.Add("Country"); DataRow drow = dt.
DataTable dt = new DataTable();
dt.Columns.Add("Type");
dt.Columns.Add("Address1");
dt.Columns.Add("Address2");
dt.Columns.Add("PostalCode");
dt.Columns.Add("Country");
DataRow drow = dt.NewRow();
drow["Type"] = ddlAddressType.SelectedItem.ToString();
drow["Address1"] = txtAddress1.Text;
drow["Address2"] = txtAddress2.Text;
drow["PostalCode"] = txtPostalCode.Text;
drow["Country"] = ddlCountry.SelectedItem.ToString();
dt.Rows.Add(drow);
Session["Address"] = dt;
尝试使用以下代码将值添加到gridview中:
public void populateAddressGridView()
{
if (Session["Address"] != null)
{
DataTable dt = (DataTable)Session["Address"];
if ((dt != null) && (dt.Rows.Count > 0))
{
AddressGridView.Visible = true;
AddressGridView.DataSource = dt;
AddressGridView.DataBind();
}
else
{
AddressGridView.Visible = false;
}
}
但添加新数据行后,字段为空,没有任何值。
如果启用自动生成字段,则可以查看生成的数据
如何解决这个问题?在GridView的定义中,如果AutoGenerateColumns设置为false,请确保已定义。在GridView的定义中,如果AutoGenerateColumns设置为false,请确保已定义。我看得很对。调试时,能否确认会话对象正正确转换为数据表?演员表后面有行吗?代码是否到达了数据绑定方法?在我看来是正确的。调试时,能否确认会话对象正正确转换为数据表?演员表后面有行吗?代码是否进入数据绑定方法?是否需要注册 在使用Global.asax文件之前,会话[“Address”]变量在其中 还有赫克托
确保在web.config文件上启用了应用程序的会话状态 是否需要注册 在使用Global.asax文件之前,会话[“Address”]变量在其中 还有赫克托
确保在web.config文件上启用了应用程序的会话状态 听起来您需要设置AutoGenerateColumns=“false”,然后指定要在gridview中显示的列:
<asp:GridView ID="AddressGridView" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Type" DataField="Type" />
<asp:BoundField HeaderText="Address1" DataField="Address1" />
<asp:BoundField HeaderText="Address2" DataField="Address2" />
<asp:BoundField HeaderText="PostalCode" DataField="PostalCode" />
<asp:BoundField HeaderText="Country" DataField="Country" />
</Columns>
<EmptyDataTemplate>
No records were found matching your search criteria
</EmptyDataTemplate>
</asp:GridView>
未找到与搜索条件匹配的记录
听起来您需要设置AutoGenerateColumns=“false”,然后指定要在gridview中显示的列:
<asp:GridView ID="AddressGridView" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Type" DataField="Type" />
<asp:BoundField HeaderText="Address1" DataField="Address1" />
<asp:BoundField HeaderText="Address2" DataField="Address2" />
<asp:BoundField HeaderText="PostalCode" DataField="PostalCode" />
<asp:BoundField HeaderText="Country" DataField="Country" />
</Columns>
<EmptyDataTemplate>
No records were found matching your search criteria
</EmptyDataTemplate>
</asp:GridView>
未找到与搜索条件匹配的记录