0

次のコードを使用して、データをデータベース(2つのTextBoxと1つのボタン)に保存せずに、TextBoxからGridViewにデータを表示しました。テキストボックスに名前と都市を入力し、ボタンをクリックすると、それらの値がグリッドビューに表示されます。エラーなしで期待どおりに動作しています。ただし、コードを少し調整して、GridViewが古いデータをGridviewに保持することで、テキストボックスから新しいデータを追加できるようにします(Gridviewでは、単一の行ではなく複数の行を表示する必要があります)。

これは、C#コーディング(Visual Studio 2010)を使用するWebベースのASP.NETアプリケーションです。

上記の機能を実装するために、以下のコードに必要な変更を加えることができますか?

public partial class _Default : System.Web.UI.Page
{
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();

protected void Page_Load(object sender, EventArgs e)
    {

    }

protected void btnTextDisplay_Click(object sender, EventArgs e)
    {
            DataColumn dc1 = new DataColumn("Name");
            DataColumn dc2 = new DataColumn("City");
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);

            DataRow dr = dt.NewRow();
            dr[0] = txtName.Text;
            dr[1] = txtCity.Text;
            dt.Rows.Add(dr);
            gvDisplay.DataSource = dt;
            gvDisplay.DataBind();
    }
}
4

1 に答える 1

2

ポストバック間でデータを永続化する必要があります。ここには、、、などの多くのオプションがSessionありViewStateますCache

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostback)
    {
         dt = Session["data_table"] as DataTable;
    }
}

protected void btnTextDisplay_Click(object sender, EventArgs e)
{
     if (dt == null)
     {
          dt = new DataTable();
          DataColumn dc1 = new DataColumn("Name");
          DataColumn dc2 = new DataColumn("City");
          dt.Columns.Add(dc1);
          dt.Columns.Add(dc2);   
     }

     DataRow dr = dt.NewRow();
     dr[0] = txtName.Text;
     dr[1] = txtCity.Text;
     dt.Rows.Add(dr);
     gvDisplay.DataSource = dt;
     gvDisplay.DataBind();

     Session["data_table"] = dt;
}
于 2013-02-19T07:11:02.590 に答える