2016-06-21 1 views
0

Я использую RadAjaxManager для ajaxify некоторых элементов управления WebForms. Аякса отлично во всех сценариях работы, кроме одного:RadAjax не стреляет на 1-й клик после обработчика события на стороне клиента

У меня есть LinkButton:

<asp:LinkButton ID="lnkSaveButton" 
        Text="Save" 
        OnClick="lnkSaveButton_Click" 
        OnClientClick="if (! validateValidation()) return false;" 
        runat="server" /> 

validateValidation функция пожары некоторые проверки на стороне клиента страницы моих элементов управления формы, которая возвращает false блокировать форму от представления, если Недопустимая страница.

В случае, если Страница недействительна, все элементы управления, направленные на RadAjaxManager, не могут выполнить их запрос ajax при первом нажатии (только после), после завершения проверки.

Любое последующее нажатие на ajaxified контролирует запрос правильно. Также стоит отметить, что все элементов управления Ajaxified работают правильно после того, как один один раз щелкнул ajaxified control. Нажатие на любой неаксированный элемент управления (не нацеленный на RadAjaxManager) не влияет.

Следует также отметить, что если я заменил RadAjaxManager на простые RadAjaxPanel, то получаю тот же результат, что и выше.

Что происходит и как его исправить?

ответ

0
  • убедитесь, что вы не добавляете AjaxSettings, которые охватывают RadAjaxPanel контролирует

  • убедитесь, что никакие ошибки сценария не выбрасываются, особенно проверки

  • пытаются называть ajaxRequsetWithTarget в стороне клиента обработчика, если валидация успешна, что-то вроде:

    <telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> 
         <script> 
          function validateValidation() { 
           var validatinPassed = true; 
           $find("<%=RadAjaxManager.GetCurrent(Page).ClientID%>").ajaxRequestWithTarget('<%= lnkSaveButton.UniqueID %>', ''); 
           return false; 
          } 
         </script> 
        </telerik:RadCodeBlock> 
        <asp:LinkButton ID="lnkSaveButton" 
            Text="Save" 
            OnClick="lnkSaveButton_Click" 
            OnClientClick="if (! validateValidation()) 
             return false;" 
            runat="server" /> 
        <asp:Label ID="Label1" Text="text" runat="server" /> 
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
         <AjaxSettings> 
          <telerik:AjaxSetting AjaxControlID="lnkSaveButton"> 
           <UpdatedControls> 
            <telerik:AjaxUpdatedControl ControlID="lnkSaveButton" /> 
            <telerik:AjaxUpdatedControl ControlID="Label1" /> 
           </UpdatedControls> 
          </telerik:AjaxSetting> 
         </AjaxSettings> 
        </telerik:RadAjaxManager> 
    

    и образец обработчика для тестирования г

    protected void lnkSaveButton_Click(object sender, EventArgs e) 
    { 
        Label1.Text = DateTime.Now.ToString(); 
    } 
    
+0

Спасибо за советы. Я думаю, что у меня есть большая часть этого, но я скоро попробую функцию «ajaxRequestWithTarget» и дам вам знать, как это происходит. – Adam