Я создал
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;
попытался добавить значение в сетку, используя следующий код:
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.
Мне кажется. При отладке можете ли вы подтвердить, что объект сеанса правильно приводится в таблицу данных? Есть ли у dt строки после приведения? Попадает ли код в метод привязки данных?
Обязательно ли регистрироваться
Переменная сеанса ["Адрес"] в файле Global.asax перед ее использованием ???
и Гектор,
убедитесь, что состояние сеанса вашего приложения включено в файле web.config.
Мне кажется, вам нужно установить AutoGenerateColumns = "false", а затем указать столбцы, которые будут отображаться в представлении сетки:
<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>