2017-03-02 11 views
1

リファレンステーブルからデータを取得するリピーターがあります。リピータには行を追加するボタンが付いています。ただし、リピーター内の新しいテキストボックスにデータを入力して、[行の追加]ボタンを再度クリックすると、以前に追加された行に入力されたデータは消えます。このデータは、ボタンで追加され、途方に暮れています:「行を追加」ボタンをクリックした後、リピーターからデータが消える

ページの読み込みコード:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     Session["dt2"] = null; 
    } 
    else 
    { 
     if (Session["dt2"] == null) 
     { 
      SqlDataAdapter sda2 = new SqlDataAdapter("select i.reference_id as [Ref ID], r.ref_code as [Ref Code], r.title as Title, r.year as Year, i.pages as [Pages] from item_reference i left join [references] r on r.reference_id = i.reference_id left join item_header h on h.item_header_id = i.item_header_id where h.item_id ='" + cloneItemID.Text + "'", con); 
      dt2 = new DataSet(); 
      sda2.Fill(dt2); 
      Session["dt2"] = dt2; 
     } 
    } 

    RptRefs.DataSource = (DataSet)Session["dt2"]; 
    RptRefs.DataBind(); 
} 

ボタンをクリックしてコード:

protected void btnRefAddRow_Click(object sender, EventArgs e) 
{ 
    var dt2Data = (DataSet)Session["dt2"]; 

    for (var i =0; i < RptRefs.Items.Count; i++) 
    { 
     dt2Data.Tables[0].Rows[i]["Ref ID"] = (RptRefs.Items[i].FindControl("refID") as TextBox).Text; 
     dt2Data.Tables[0].Rows[i]["Pages"] = (RptRefs.Items[i].FindControl("Pages") as TextBox).Text; 
    } 

    var row = dt2Data.Tables[0].NewRow(); 
    row["Ref ID"] = "0"; 
    row["Ref Code"] = ""; 
    row["Title"] = ""; 
    row["Pages"] = ""; 
    dt2Data.Tables[0].Rows.Add(row); 
    Session["dt2"] = dt2Data; 
    RptRefs.DataSource = dt2Data; 
    RptRefs.DataBind(); 
} 
+0

あなたの挿入コードが機能していると確信しましたか?良いテストは、最初にバインドされる前に、いくつかのテスト値を使用して挿入コードをpage_loadに移動することです。 – Seano666

+0

この追加行は、データをデータベースに挿入しないでください。私はあなたが求めていたものであれば、挿入を処理する保存ボタンを持っています。追加された行が変更され、追加行が再びクリックされた後に、データはリピーターにとどまるだけです。 –

答えて

0

問題は、あなたがしてもPage_LoadにリピータのDataSourceを設定することですIsPostBackが真です。この方法で、リピーター内の変更されたデータは、ボタンがクリックされたときで、btnRefAddRow_Clickが実行される前に上書きされます。

IsPostBackがfalseの場合に、Page_LoadをリピータのDataSourceに変更するように変更します。

関連する問題