2014-01-10 1 views
2

Я уже давно застрял в этом. Я занимаюсь серфингом stackoverflow для различных подходов к проблеме, но я все еще не могу заставить его работать. Он запускает код, но всплывающее окно не отображается. Он работает, когда я помещаю метод на кнопку вне поля обновления.Вызов JQueryUI из строки правил Gridview внутри Updatepanel

Я хочу, чтобы всплывающее окно отображалось, когда я нажимаю кнопку кнопки в gridview.

Вот мой код:

<script type="text/javascript"> 
     function ShowPopup(message, title) { 
      $(function() { 
       $("#dialog").html(message); 
       $("#dialog").dialog({ 
        title: title, 
        buttons: { 
         Close: function() { 
          $(this).dialog('close'); 
         } 
        }, 
        modal: true 
       }); 
      }); 
     }; 
</script> 

<div id="dialog" style="display: none"> 

</div> 

CodeBehind (я все мои разные подходы к моей проблеме в комментариях):

protected void grdWallmessages_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    string message = "Meddelande borttaget från väggen!"; 
    string title = " Borttagning"; 
    ScriptManager.RegisterStartupScript(updwallmessages, updwallmessages.GetType(), Guid.NewGuid().ToString(), "ShowPopup('" + message + "','" + title + "');", true); 

    // ScriptManager.RegisterStartupScript(this, this.GetType(), "myalert", "alert('File already exists.');", true); 
//  Page.ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup('" + message + "','" + title + "');", true); 
    try 
    { 
     DAL dal = new DAL(); 
     //Hämtar row index. 
     int rowNum = int.Parse(e.CommandArgument.ToString()); 

     int id = Convert.ToInt32(grdWallmessages.Rows[rowNum].Cells[3].Text); 
     dal.delete_wallmessages(id); 


    //  ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup('" + message + "','" + title + "');", true); 


     Response.Redirect("Profile.aspx"); 



    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 

} 

Элемент GridView и UpdatePanel:

<asp:UpdatePanel ID="updwallmessages" runat="server"> 
    <ContentTemplate> 
    <asp:GridView ID="grdWallmessages" runat="server" Height="159px" style="margin-top: 18px; margin-right: 0px;" Width="396px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowCommand="grdWallmessages_RowCommand" OnRowDataBound="grdWallmessages_RowDataBound"> 
     <Columns> 
      <asp:ButtonField Text="Ta bort" /> 
     </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

ответ

0

You не удалось сделать Response.Redirect("Profile.aspx"); в контексте ajax, который выполняется, когда вы сохраняете код вида сетки в стороне UpdatePanel.

Проверьте данные ответа сервера с помощью сетевой консоли Firebug или Chrome/Firefox.

+0

Спасибо, он решил мою проблему! –

+0

@ user3025336, это здорово :) –