【发布时间】:2014-05-29 22:32:59
【问题描述】:
我有一个绑定到数据表的转发器,但转发器的最后一列有一个文本框(不是以编程方式创建的)。我有一个按钮,但在中继器之外。在 button_click 事件中,我想获取在文本框中输入的值以及中继器该行中的数据。在回发中/在回发期间,数据表再次被重新创建并绑定到转发器,但在 button_click 事件中,文本框为空(假设用户输入了一个值并单击了按钮)。我已经完成了重新绑定,在谷歌搜索时我得到了大部分答案。我不确定数据表到转发器的数据绑定是否会影响文本框列,因为该列不是数据表的一部分?我该怎么做?请查看 HTML 和下面的代码,
HTML
<div id="ucprodres-any-mfg">
<asp:Repeater ID="rptAnyMfg" runat="server" >
<ItemTemplate>
<div id="ucprodres-any-mfg-row">
<div class="ucprodres-stock manufacturer">
<div class="ucprodres-mfg ">
<div id="ucprodres-exp-any-mfg" data-swap="-">+</div>
<div> <%#DataBinder.Eval(Container.DataItem, "Mfg")%></div>
</div>
</div>
<div class="ucprodres-stock qty-avail">
<%#DataBinder.Eval(Container.DataItem, "Qty")%>
</div>
<div class="ucprodres-stock availability">
<%#DataBinder.Eval(Container.DataItem, "Availability")%>
</div>
<div class="ucprodres-stock unit-price">
<%#DataBinder.Eval(Container.DataItem, "QtyRange")%>
</div>
<div class="ucprodres-stock dollar">
<%#DataBinder.Eval(Container.DataItem, "QtyRangePrice")%>
</div>
<div id="txtboxID" class="ucprodres-stock qty-required" >
<asp:TextBox ID="tbxAnyMfg" runat="server" style="text-align: right"
ToolTip="Quantity should not be more than available quantity."></asp:TextBox>
<div class="ucprodres-txtbox-info">Quantity should not be more than available quantity</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
隐藏代码
Public Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click
For Each rptitems As RepeaterItem In rptAnyMfg.Items
If (rptitems.ItemType = ListItemType.Item) Or (rptitems.ItemType = ListItemType.AlternatingItem) Then
Dim tbxQtyReqd As TextBox = rptitems.FindControl("tbxAnyMfg")
If Not String.IsNullOrEmpty(tbxQtyReqd.Text) Then
If tbxQtyReqd.Text > "0" Then
Dim mfg As String = rptitems.DataItem("Mfg").ToString
Dim qty As String = rptitems.DataItem("Qty").ToString
Dim avail As String = rptitems.DataItem("Availability").ToString
Dim qtyrange As String = rptitems.DataItem("QtyRange").ToString
Dim unitprice As String = rptitems.DataItem("QtyRangePrice").ToString
Dim qtyreqd As String = tbxQtyReqd.Text
Dim rfqpart As New Parts.InStock
Dim rfqpartdetails As New Parts.InStock.PartsData(mfg, qty, avail, qtyrange, unitprice, qtyreqd)
rfqpart.Add(rfqpartdetails)
End If
End If
End If
Next
End Sub
【问题讨论】:
标签: asp.net vb.net data-binding datatable postback