我正在使用带有TextChanged事件的asp TextBox控件,我的目标是在用户输入文本时捕获文本。如果输入了一个或多个字符,我希望启用一个按钮控件,而无需用户离开TextBox控件。
我在aspx页面上的TextBox的源代码是
<asp:TextBox ID="NewSpendingCategoryTextBox" MaxLength="12" runat="server"
AutoPostBack="True"
OnTextChanged="NewSpendingCategoryTextBox_TextChanged"
ViewStateMode="Enabled" >
</asp:TextBox>
我在后面的代码上的源代码是
Protected Sub NewSpendingCategoryTextBox_TextChanged(sender As Object, e As System.EventArgs) Handles NewSpendingCategoryTextBox.TextChanged
Dim strSpendingCategoryTextBox As String = Nothing
strSpendingCategoryTextBox = NewSpendingCategoryTextBox.Text
If strSpendingCategoryTextBox.Length <= 0 Then
Me.NewSpendingCategoryInsertButton.Enabled = False
Else 'strSpendingCategoryTextBox.Length > 0
Me.NewSpendingCategoryInsertButton.Enabled = True
End If 'strSpendingCategoryTextBox.Length <= 0
End Sub
所以看来我必须使用javascript来启用或禁用插入按钮。有人可以指导我如何在表格中获取元素吗?该表也位于Panel中。
下面是aspx代码......
<asp:Panel ID="AddSpendingCategoryPanel" Visible="false" runat="server">
<table class="AddNewTable">
<tbody>
<tr>
<td>
<asp:Label ID="lblSpend" runat="server"
Text="Spending Category:">
</asp:Label>
</td>
<td>
<asp:TextBox ID="txtSpend" MaxLength="12"
runat="server"
AutoPostBack="True"
OnTextChanged="txtSpend_TextChanged"
OnKeyDown="return CheckSpendTextBoxValue()"
ViewStateMode="Enabled" >
</asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button CssClass="frmbtn" ID="btnInsertSpend"
runat="server" Text="Insert" />
</td>
<td>
<asp:Button CssClass="frmbtn" ID="btnCancelSpend"
runat="server" Text="Cancel"
CausesValidation="False" />
</td>
</tr>
</tbody>
</table>
</asp:Panel>
答案 0 :(得分:0)
在OnKeyPress
事件中运行此代码或考虑JavaScript
。文本框不会触发Text_Changed事件,直到使用Tab
或Enter
。
简化布尔检查。
Me.NewSpendingCategoryInsertButton.Enabled = (NewSpendingCategoryTextBox.Text.Length <> 0)
答案 1 :(得分:0)
我不确定你会怎么做。但ASP.NET代码在托管网页的服务器上执行。
我强烈建议在JavaScript上进行,可以在客户端运行。希望这篇文章对你有用。