我目前有一个Gridview
,它是根据文字输入动态创建的。
<asp:GridView ID="gvSession" runat="server" ShowFooter="false" CssClass="table table-striped table-bordered dataTable no-footer hover gvv" AutoGenerateColumns="true" ShowHeaderWhenEmpty="true">
<Columns>
</Columns>
</asp:GridView>
因此,每当我的网页都有PostBack
时,controls
中TextBox
动态创建的Label
和Gridview
一直消失,因此,Gridview
将保留先前创建的行数,但为空。
有没有办法保存&#39; Gridview
的信息?或者我只是错误地创建了Gridview
以下是我创建Gridview
的方式。
ASPX.CS
protected void tbClassSession_TextChanged(object sender, EventArgs e)
{
GenerateRows();
}
private void SetInitialRow()
{
int numbers = int.Parse(this.tbClassSession.Text.Trim());
DataTable dt = new DataTable();
//you can add as many rows you want
dt.Columns.Add("Session No.", typeof(string));
dt.Columns.Add("Lesson Date", typeof(DateTime));
for (int i = 0; i < numbers; i++)
{
dt.Rows.Add("", null);
}
gvSession.DataSource = dt;
gvSession.DataBind();
}
protected void GenerateRows()
{
this.SetInitialRow();
int numbers = int.Parse(this.tbClassSession.Text.Trim());
int cellCount = this.gvSession.Rows[0].Cells.Count;
int rowsCount = this.gvSession.Rows.Count;
foreach (GridViewRow row in this.gvSession.Rows)
{
Label label = new Label();
label.Text = (row.RowIndex + 1).ToString();
label.Attributes.Add("runat", "server");
row.Cells[0].Controls.Add(label);
}
int rowCount = 0;
foreach (GridViewRow row in this.gvSession.Rows)
{
TextBox textBox = new TextBox();
textBox.TextMode = TextBoxMode.Date;
textBox.Text = "Hello World"
}
}