2014-12-31 3 views
0

У меня неожиданное поведение двух JS, которые вызываются при нажатии на элемент управления. Эти JS должны быть вызваны только тогда, когда кнопка в списке деревьев нажата в определенных условиях.Нажмите, чтобы вызвать причину нежелательного вызова JS

В настоящее время JS «оповещение сообщения» вызывается, даже если щелкнуть по любому из узлов списка деревьев при выполнении условий.

Другой JS, открывающий окно, также открывается при щелчке по узлу списка деревьев, но после открытия и закрытия его хотя бы один раз.

protected void RadTreeList1_ItemCommand(object sender, TreeListCommandEventArgs e) 
{ 
    string idMessage = ""; 
    if (e.CommandName == "Select") 
    { 
     if (e.Item is TreeListDataItem) 
     { 
      TreeListDataItem item = e.Item as TreeListDataItem; 
      idMessage = item.GetDataKeyValue("MessageID").ToString(); 
     } 
    } 
    addMessage(idMessage); 
} 
private void addMessage(string idMessage) 
{ 
    if (Label1.Text =="" || Label1.Text==null) 
    { 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('You shall be logged-in to post and replay to messages');", true); 
    } 
    else 
    { 
     { 
      Session["fatherMessageID"] = idMessage; 
      string script = "<script language='javascript' type='text/javascript'>Sys.Application.add_load(ShowWindow);</script>"; 
      ClientScript.RegisterStartupScript(this.GetType(), "showWindow", script); 
     } 
    } 
} 

Функция, которая открывает окно:

function ShowWindow() { 
     var oWnd = window.radopen('Window1.aspx', 'window1'); 
    } 

функция, закрыть окно внутри окна:

function GetRadWindow() { 
     var oWnd = null; 
     if (window.radWindow) oWnd = window.radWindow; 
     else if (window.frameElement.radWindow) oWnd = window.frameElement.radWindow; 
     return oWnd; 
    } 
    function CloseWindow() { 
     var oWnd = GetRadWindow(); 
     oWnd.close() 
    } 

функция, которая вызывает CloseWindow внутри страницы окна:

finally 
     { 
      string script = "<script language='javascript' type='text/javascript'>Sys.Application.add_load(CloseWindow);</script>"; 
      ClientScript.RegisterStartupScript(this.GetType(), "CloseWindow", script); 

     } 

Как я могу исправить эту проблему?

+1

Возможно, вам необходимо разместить addMessage (idMessage); внутри if (e.Item is TreeListDataItem) состояние – Sandeep

+0

@Sandeep, спасибо за подсказку. Это решило нежелательный вызов сообщения. Но у меня все еще есть проблема в окне, которое открывается, как описано выше. – FeliceM

+0

Не уверен, что window.radopen ('Window1.aspx', 'window1') является правильным или нет. если вы используете RadWindow, тогда функция showwindow должна быть чем-то вроде этого var oWnd = window.radopen (null, "[RadWindowID]"); – Sandeep

ответ

0

Alert Issue: необходимо разместить addMessage (idMessage); внутри, если (e.Item является TreeListDataItem) состояние

Диалог Выпуск: не уверен, является ли правильным или нет window.radopen ('Window1.aspx', 'window1'). если вы используете RadWindow, тогда функция showwindow должна быть чем-то вроде этого var oWnd = window.radopen (null, "[RadWindowID]");

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