asp.net 1.1中分组验证的实现

根据验证控件的TabIndex这个几乎没有用的属性来分组

页面Javascript脚本: <script language="javascript" type="text/javascript"> function hideOldValidatorDisplay() { var i; for (i = 0; i < Page_Validators.length; i++) { var val = Page_Validators[i]; if (typeof(val.display) == "string") { if (val.display == "None") { return; } } if (val.display == "Dynamic") { val.style.display = "none"; return; } val.style.visibility = "hidden"; } } var oldPage_Validators; function selectForValidator(tabIndex) { if(typeof(oldPage_Validators) == "undefined") { oldPage_Validators = Page_Validators; } result = new Array(); for(i = 0;i < oldPage_Validators.length; i++) { if(oldPage_Validators[i].tabIndex == tabIndex) { result[result.length] = oldPage_Validators[i]; } } hideOldValidatorDisplay(); Page_Validators = result; } </script><script language="javascript" type="text/javascript"> function hideOldValidatorDisplay() { var i; for (i = 0; i < Page_Validators.length; i++) { var val = Page_Validators[i]; if (typeof(val.display) == "string") { if (val.display == "None") { return; } } if (val.display == "Dynamic") { val.style.display = "none"; return; } val.style.visibility = "hidden"; } } var oldPage_Validators; function selectForValidator(tabIndex) { if(typeof(oldPage_Validators) == "undefined") { oldPage_Validators = Page_Validators; } result = new Array(); for(i = 0;i < oldPage_Validators.length; i++) { if(oldPage_Validators[i].tabIndex == tabIndex) { result[result.length] = oldPage_Validators[i]; } } hideOldValidatorDisplay(); Page_Validators = result; } </script>

 

     < script language = " javascript " >
    
function  hideOldValidatorDisplay() 
    {
        
var  i;
        
for  (i  =   0 ; i  <  Page_Validators.length; i ++
        {
            
var  val  =  Page_Validators[i];
            
if  ( typeof (val.display)  ==   " string "
            {    
                
if  (val.display  ==   " None "
                {
                    
return ;
                }
            }
            
if  (val.display  ==   " Dynamic "
            {
                val.style.display 
=   " none " ;
                
return ;
            }
            val.style.visibility 
=   " hidden " ;
        }
    }
    
var  oldPage_Validators;
    
function  selectForValidator(tabIndex)
    {
        
if ( typeof (oldPage_Validators)  ==   " undefined " )
        {
            oldPage_Validators 
=  Page_Validators;
        }
        result 
=   new  Array();
        
for (i  =   0 ;i  <  oldPage_Validators.length; i ++ )
        {
            
if (oldPage_Validators[i].tabIndex  ==  tabIndex)
            {
                result[result.length] 
=  oldPage_Validators[i];
            }
        }
        hideOldValidatorDisplay();
        Page_Validators 
=  result;
    }
    
</ script >

//-----------------------------------------------

CodeBehind代码:

         private   void  Page_Load( object  sender, System.EventArgs e)
        {
            
if ( ! Page.IsPostBack)
            {
                
// 验证TabIndex为15的验证控件
                 this .lbtnSubmit.Attributes[ " onclick " ] = " selectForValidator(15); " ;
                
// 验证未设TabIndex,即TabIndex=0的验证控件
                 this .btnSubmit.Attributes[ " onclick " ] = " selectForValidator(0); " ;
            }
        }
        
protected   bool  ValidateGroup(Int16 validatorTabIndex)
        {
            
bool  isInputValid  =   true ;
            BaseValidator baseVal;
            
foreach (IValidator valCtl  in  Validators)
            {
                baseVal 
=  (BaseValidator)valCtl;
                baseVal.IsValid 
=   true ;
                
if (baseVal.Enabled  &&  baseVal.Visible  &&  baseVal.TabIndex  ==  validatorTabIndex)
                {
                    valCtl.Validate();
                    isInputValid 
=  isInputValid  &&  valCtl.IsValid;
                }
            }
            
return  isInputValid;
        }
        
private   void  lbtnSubmit_Click( object  sender, System.EventArgs e)
        {
            
bool  isPageValid  =  ValidateGroup( 15 );
            
if (isPageValid) Response.Write( " Valid " );
        }
        
private   void  btnSubmit_Click( object  sender, System.EventArgs e)
        {
            
bool  isPageValid  =  ValidateGroup( 0 );
            
if (isPageValid) Response.Write( " Valid " );        
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET MVC 使用 SignalR 实现推送功能需要以下步骤: 1. 在 Visual Studio 创建一个 ASP.NET MVC 项目。 2. 通过 NuGet 安装 SignalR 库。 3. 创建一个 SignalR Hub 类。Hub 类是用来处理客户端和服务器之间的连接和消息传递的核心组件。 4. 在 Startup.cs 配置 SignalR 间件。 5. 在客户端 JavaScript 引用 SignalR 库,并连接到 SignalR Hub。 6. 在 SignalR Hub 定义需要推送的消息方法,然后在服务器端调用该方法以向客户端发送消息。 下面是一个简单的示例: 1. 创建一个名为 ChatHub 的 SignalR Hub 类: ```csharp using Microsoft.AspNetCore.SignalR; using System.Threading.Tasks; namespace MvcSignalR.Hubs { public class ChatHub : Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } } } ``` 2. 在 Startup.cs 配置 SignalR 间件: ```csharp using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MvcSignalR.Hubs; namespace MvcSignalR { public class Startup { public IConfiguration Configuration { get; } public Startup(IConfiguration configuration) { Configuration = configuration; } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSignalR(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseStaticFiles(); app.UseSignalR(routes => { routes.MapHub<ChatHub>("/chathub"); }); app.UseMvcWithDefaultRoute(); } } } ``` 3. 在客户端 JavaScript 引用 SignalR 库,并连接到 SignalR Hub: ```javascript <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script src="/lib/signalr/dist/browser/signalr.js"></script> <script> var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build(); connection.start().then(function () { console.log("connected"); }).catch(function (err) { return console.error(err.toString()); }); connection.on("ReceiveMessage", function (user, message) { console.log(user + " says " + message); }); $("#sendButton").click(function () { var user = $("#userInput").val(); var message = $("#messageInput").val(); connection.invoke("SendMessage", user, message).catch(function (err) { return console.error(err.toString()); }); }); </script> ``` 4. 在 SignalR Hub 定义需要推送的消息方法,然后在服务器端调用该方法以向客户端发送消息。 在这个示例,当客户端调用 SendMessage 方法时,服务器将向所有连接的客户端发送 ReceiveMessage 消息。 以上就是在 ASP.NET MVC 使用 SignalR 实现推送功能的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值