我在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