我正在使用带有TextChange事件的asp文本框控件,尝试将文本设置为标签,因为文本框文本已更改,但是当我从文本框中松开焦点而不是文本更改时它正在工作。 失去焦点的问题是,如果我使用AutoPostBack =“true”,它会刷新影响我其他值的页面......
我在aspx页面上的文本框源代码
<asp:TextBox ID="txtSearchCust" runat="server" Width = "200" OnTextChanged="txtSearchCust_TextChanged" AutoPostBack="true" />
我的代码页面源代码
Protected Sub txtSearchCust_TextChanged(sender As Object, e As EventArgs) Handles txtSearchCust.TextChanged
QtyChk.Text=txtSearchCust.Text
End Sub
这里QtyChk是我试图设置文本的标签 任何解决方案......?
答案 0 :(得分:0)
根据您的问题。
<script type="text/javascript">
function doTextBoxChange() {
__doPostBack();
}
</script>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" onkeydown="return doTextBoxChange();"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack() Then
LabelChange()
End If
End Sub
Sub LabelChange()
Label1.Text = "1234"
End Sub
但我认为使用javascript是一个更好的选择。
发布后,这些值会消失,您需要请求值和设置
否则,使用viewstate或session。
使用javascript,不要发布表单数据。
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" onkeyup="return doTextBoxChange();"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
function doTextBoxChange() {
var inputValue = document.getElementById("TextBox1").value;
document.getElementById('<%= Label1.ClientID %>').innerHTML = inputValue;
}