用户单击或输入文本框并在asp.net中验证时的显示范围

时间:2013-03-02 17:38:51

标签: asp.net ajax web-applications

当用户选中文本框或单击它时如何显示带有文本框范围的弹出框,如果用户在asp.net中输入非范围值,则验证它?目前我正在使用js和css来显示使用z-index的面板,但没有验证。还有更好的方法吗?

我尝试了Ajax Validator控件,但似乎只有在用户离开文本框时才会弹出它们。而且,文本框是动态创建的。

1 个答案:

答案 0 :(得分:0)

如果修复了文本框的范围,则必须仅使用javascript。如果您需要验证动态内容,则必须使用ajax调用Web方法或Web服务。 标记将是这样的

<asp:ScriptManager ID="ScriptManager1" runat="server" 
  EnablePageMethods="true" />
<script language="javascript">
 function UpdateTime() {
   PageMethods.GetCurrentDate(OnSucceeded, OnFailed); 
 }

 function OnSucceeded(result, userContext, methodName) {
   $get('Label1').innerHTML = result; 
 }

 function OnFailed(error, userContext, methodName) {
   $get('Label1').innerHTML = "An error occured.";
 }
</script>
<asp:Label runat="server" ID="Label1" Text="Update Me!" /><br />
<input type="button" id="Button2" value="Web Method Update" 
  onclick="UpdateTime();" />

您必须启用脚本管理器的页面方法,并将页面中写入的方法调用为PageMethods.YourMethodName(JavascriptMethodIfCallingSuccess,JavascriptMethodOnError); 您可以在c#中编写页面代码,如下所示

[WebMethod]
public static string GetCurrentDate()
{
  return DateTime.Now.ToLongDateString();
}

现在,您将从javascript中获取服务器的返回值。如果您的验证始终是固定的,并且不需要服务器端验证,请不要使用此方法。它可能会导致页面和服务器出现意外负载。