2014-03-03 22 views
1

我正在加载中继器的数据,然后在按钮上点击我试图保存数据。中继器循环文本框文本被报告为空

继承人我有,但tbDate.text或tbAmount.texts总是被报告为“”而不是值。

<asp:Repeater runat="server" ID="rptInstallments" OnItemDataBound="rptInstallments_ItemDataBound"> 
         <ItemTemplate> 
           <div class="form-group"> 
           <label class="control-label">Installment Amount</label> 
           <div class="controls"> 
            <asp:TextBox runat="server" ID="txtAmount" CssClass="form-control"></asp:TextBox> 
           </div> 
          </div> 
          <div class="form-group"> 
           <label class="control-label">Installment Date</label> 
           <div class="controls"> 
            <asp:TextBox runat="server" ID="txtDate" CssClass="form-control datepicker"></asp:TextBox> 
           </div> 
          </div> 
         </ItemTemplate> 
        </asp:Repeater> 

继承人的后端代码:

protected void btGo_Click(object sender, EventArgs e) 
     { 
      foreach (RepeaterItem item in rptInstallments.Items) 
      { 
       TextBox tbDate = item.FindControl("txtDate") as TextBox; 
       TextBox tbAmount = item.FindControl("txtAmount") as TextBox; 
       String myAmount = tbAmount.Text; 
       String myDate = tbDate.Text; 

       var rInstall = dtInstall.NewSubPIDInstallmentsRow(); 
       rInstall.SPID = SPID; 
       rInstall.InstallmentAmount = Convert.ToDecimal(myAmount); 
       rInstall.InstallmentDue = Convert.ToDateTime(myDate); 

       dtInstall.AddSubPIDInstallmentsRow(rInstall); 
       taInstall.Update(dtInstall); 

      } 

     } 

编辑

我在黑客转发给没有真正的数据源。这可能是问题吗?

int[] RowCount = new int[numberOfInstallments]; 

       rptInstallments.DataSource = RowCount; 
       rptInstallments.DataBind(); 
+0

你的数据如何绑定中继器? – Andrei

+0

我已经添加了一个编辑信息 – TMB87

+0

你有你的数据绑定包裹在'if(!IsPostBack)'? – Andrei

回答

1

在Page_load的if(!IsPostBack)条件中添加绑定Repeater控件的代码。这对我有效。