我正在尝试将代码从WinForm转换为WinApp,但我对aspx知之甚少,对javascript也一无所知。
我已经以编程方式创建了一个将被赋予文本的textbox。然后通过如下的验证方法传递文本:
text.Validating += new CancelEventHandler(boolean_Validating);
转到
private void boolean_Validating(object sender, CancelEventArgs e)
{
TextBox textBox = (TextBox)sender;
string boolean = textBox.Text;
string message = null;
if (!checkBooleanSyntax(boolean, out message))
{
Response.Write("Error: " + message);
e.Cancel = true;
textBox.Text = message;
}
}ASPX没有text.Validating部件的定义。我还能如何使用Cancel事件处理程序验证文本?
发布于 2012-04-17 03:05:03
在asp.net中,我们使用验证控件。它们可以在客户端(如果用户还没有在浏览器中禁用javascript )和服务器端(因此您可以确保用户不只是禁用js,并且可以立即自由地利用您的应用程序)来处理工作。
如果您需要一些具有特定逻辑的特殊验证,您可以为自己编写一个自定义验证器控件。
我不能在这里写下所有内容,因为一本书中可能有多个章节涵盖了这个主题,但可以在这里查看更多信息:http://www.w3schools.com/aspnet/aspnet_refvalidationcontrols.asp
http://msdn.microsoft.com/en-us/library/aa479013.aspx
发布于 2012-04-17 03:07:11
看起来你已经习惯了很长一段时间的有状态应用。web服务器不会取消请求-您只需获取给您的信息,然后向他们发送响应。
因此,如果要验证文本框的文本,通常需要一个按钮来提交给服务器,然后该按钮单击代码将获取该值并验证它。如果无效,您可以在HTML中标记页面或显示一些控件,然后将该信息呈现回用户的浏览器。
示例:
<asp:TextBox ID="textName" runat="server" CssClass="someTextYo" />
<asp:Panel ID="panelError" runat="server" Visible="false">
You entered bad stuff, yo
</asp:Panel>
<asp:Button ID="buttonSubmit" runat="server" Click="buttonSubmit_Click" />然后在你的代码中:
protected void buttonSubmit_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(textName.Text))
{
panelError.Visible = true;
}
else
{
// Save to Database, whatever
}
}此外,您可以使用javascript在客户端验证这些组件,从而消除到服务器的往返行程(尽管您仍然应该验证数据服务器端)。例如,使用jQuery:
$('form').submit(function()
{
if($.trim($('.someTextYo').val()) == '')
return false;
return true;
});您可以通过验证返回false的表单提交回调来取消表单发布。
https://stackoverflow.com/questions/10179981
复制相似问题