asp:ASP Repeater中的TextBox在回发后没有重新绑定

时间:2018-06-18 23:14:22

标签: asp.net-mvc data-binding

我在ASP转发器中有一个ASP文本框,可以在第一页画面上正确绑定。当用户点击“保存”时,内容将被发送到数据库并正确保存,但数据库具有更改值的逻辑。我重新查询数据,并检查了发送回页面的视图模型,它包含正确的数据。 HOwever,当页面完成更新数据显示时,是用户输入的内容,而不是从后面的代码发送到前端的db修改值。

我试过在转发器上专门调用DataBind,以及page.DataBind()。我还添加了一个RowDataBind方法并专门更新了文本框的值,但它仍然显示缓存的值,而不是数据库中的值。

如何重新绑定文本框?请记住,这适用于第一页绘制,但在回发和重绘后不会绑定到新数据。

这就是它在页面上的界限:

<asp:TextBox runat="server" TextMode="MultiLine"  placeholder="Account1, Account2"  name="RolldownTxt" id="RolldownTxt" style="height: 12px;width: 98%" 
maxlength="255" class="ExpandableTextBlock" Text='<%# Eval("Rolldown") %>'
onfocus="RolldownTextBoxFocus(this)" onblur="RolldownTextBoxBlur(this)"  onkeyup="RolldownTextBoxFocus(this)"  ></asp:TextBox>

并在

背后的代码中
    Protected sub NewAccountRepeaterRowDataBind(sender As Object, e as RepeaterItemEventArgs)

    if e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem
        dim rowVm = DirectCast(e.Item.DataItem, NewAccountRowViewModel)

        dim ctrl = e.item.FindControl("RolldownTxt")
        if ctrl IsNot nothing
            dim txtBox = DirectCast(ctrl, TextBox)
            txtBox.Text = rowvm.Rolldown
        end if

    End If

End sub

0 个答案:

没有答案