2014-12-15 4 views
2

Я работаю над проектом, в котором содержится более 500 страниц .aspx (Popups использует ShowModelDialog). Я хочу, чтобы запретить или запретить ввод ключа для каждой страницы.Добавление JavaScript на многие страницы (более 500) в asp.net без MasterPage

Я хочу добавить ниже код для каждой страницы (всплывающее окно) или для каждого Запроса, сделанного пользователем. К сожалению Там нет главной страницы в проекте

<script type="text/javascript"> 

function stopRKey(evt) { 
    var evt = (evt) ? evt : ((event) ? event : null); 
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
    if ((evt.keyCode == 13) && (node.type=="text")) {return false;} 
} 

document.onkeypress = stopRKey; 

</script> 

void Application_BeginRequest(object sender, EventArgs e) 
    { 
     // Code that runs on application shutdown 
     System.Web.UI.Page mypage = (System.Web.UI.Page)HttpContext.Current.Handler; 
     if (mypage != null) 
     { 
      mypage.ClientScript.RegisterClientScriptBlock(GetType(), "MyScriptKey", "alert('hi')", true); 
     } 

    } 

Я пытаюсь добавить этот скрипт в Global.asax в Application_BeginRequest но не повезло

+0

Вы не указали код, который используете, чтобы добавить скрипт, но начало сеанса, несомненно, является неправильным местом для этого. Возможно, вы приближаетесь к этому с неправильной точки - вы должны использовать мастер-страницы для абстрактной общей функциональности, а не для того, чтобы пытаться использовать ее где-то в другом месте. – mason

+0

Почему бы не ввести главную страницу? – Stilgar

+0

@Stilgar это займет много времени, так как в проекте много страниц –

ответ

0

Я использовал Application_PreRequestHandlerExecute событие в Global.asax файле, и это сработало.

void Application_PreRequestHandlerExecute(object sender, EventArgs e) 
    { 
     // Code that runs when an unhandled error occurs 
     HttpContext context = ((HttpApplication)sender).Context; 
     Page mypage = context.CurrentHandler as Page; 
     if (mypage != null) 
     { 

      mypage.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), @"function stopRKey(evt) { 
      var evt = (evt) ? evt : ((event) ? event : null); 
      var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
      if ((evt.keyCode == 13) && (node.type=='text')) {return false;} 
      } 
      document.onkeypress = stopRKey; ", true); 


      mypage.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), @"function validatedot(val, evt) { 
      var theEvent = evt || window.event; 
      var key = theEvent.keyCode || theEvent.which; 
      key = String.fromCharCode(key); 

      y = val.value.split(/\./); 

      var regex = /[0-9]|\./; 

      if (y.length > 1 && key == '.') { 

       theEvent.returnValue = false; 
       if (theEvent.preventDefault) theEvent.preventDefault(); 
      } 
      if (!regex.test(key)) { 

       if (theEvent.keyCode != 8 && theEvent.keyCode != 9) { 
        //alert('Enter only number'); 
        //alert(theEvent.keyCode); 
        theEvent.returnValue = false; 
        if (theEvent.preventDefault) theEvent.preventDefault(); 
       } 
      } 


     }", true); 
     } 

    } 
1

Если вам необходимо редактировать большое количество файлов, как это сделать сильно зависит от того, на какой платформе вы работаете и какие инструменты у вас есть в вашем распоряжении.

В Windows я бы использовал Notepad ++. С его помощью вы можете выполнять поиск и замену на несколько файлов в подкаталоге, фильтруя только определенные типы файлов (* .asp или * .php) и используя регулярные выражения для поиска и изменения текста:

CTRL-F, чтобы открыть диалог поиска. Перейдите на вкладку «Найти файлы». Выберите «Каталог» и, при необходимости, отфильтруйте фильтры. Выберите "Режим поиска" = "регулярное выражение" и использование

(</body>) 

для "Найти" поле и

***YOUR SCRIPT IN A SINGLE LINE HERE*** \r\n \1 

для "Заменить" поле.

Обратите внимание на «\ 1», который используется для помещения закрывающего тега тела в файл (иначе он будет перезаписан).

В unix и mac вы могли бы использовать некоторые эквивалентные текстовые редакторы с функциями редактирования регулярных выражений PCRE, но я боюсь, что я не могу вам помочь.

 Смежные вопросы

  • Нет связанных вопросов^_^