完全难以理解,一切看起来应该可以正常工作。当我尝试获取文本框的值时,它总是最终加载的是最初加载的值,而不是任何更新的值。请帮忙。
更新 创建了一个独立项目来重现问题。使用标准Page_Load加载数据并按照应有的方式工作。然而,该项目使用
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
当我改为以这种方式加载数据时,它失败了。不确定我的选择是什么,如果能够请帮助。
WorkOrder.aspx:
(页面上也有一个DevEx网格,但我发现没有相关性。两个控件都在asp:Content标签的根目录中)
<uc:WebUserControl ID="WebUserControl1" runat="server" />
<asp:LinkButton ID="UpdateRecord" runat="server">Update</asp:LinkButton>
WorkOrder.aspx.vb:
Protected Sub UpdateRecord_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdateRecord.Click
Dim x As String = WebUserControl1.EmailValue
End Sub
UserControl1.ascx:
<asp:TextBox ID="eMail" runat="server" CssClass="ContractTextEntry"
Text="" MaxLength="125" Width="140px"></asp:TextBox>
UserControl1.ascx.vb:
Public Property EmailValue As String
Get
Return eMail.Text
End Get
Set(value As String)
eMail.Text = value
End Set
End Property
使用简单的ADO和proc:
设置文本框的值eMail.Text = myReader.Item("Email")
答案 0 :(得分:0)
我改为使用
加载数据 Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
这对加载数据没有用,但一位同事建议添加HANDLES
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreRender
一切都在世界上正确!