2014-11-03 3 views
1

부트 스트랩을 구현하는 넷 웹 폼 응용 프로그램입니다. 현재 나는 부트 스트랩 - 모달에 레이블과 텍스트 상자를 표시하여 서버 C# 파일에서 데이터를 보내려고합니다. 어떤 이유로 Modal이 사라지고 UI에 아무 것도 표시되지 않습니다.부트 스트랩 모달 - 서버 코드 추가 ASP.Net

영문 파일

<!-- Button to trigger modal --> 
<a href="#myModal" role="button" runat="server" class="btn btn-lg btn-success" data-toggle="modal">Launch demo modal</a> 
<%--<asp:Button ID="Button1" role="button" type="button" runat="server" Text="Modal" class="btn btn-lg btn-success" data-toggle="modal" data-target="#myModal"/>--%> 

<!-- Modal --> 
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
       <h3 id="myModalLabel">Modal header</h3> 
      </div> 
      <div class="modal-body"> 

       <asp:Label ID="Label1" runat="server"></asp:Label> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      </div> 
      <div class="modal-footer"> 
       <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button> 
       <button class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
    </div> 
</div> 

C#을 파일

protected void Click_Me(object sender, EventArgs e) 
{ 
    Label1.Text = "test label"; 
    TextBox1.Text = "text box text"; 

    modal_Img.Src = "test path"; 
} 

PS를 조언을 주시기 바랍니다 : 난 업데이트 패널을 사용해야합니까?

답변

0

업데이트 패널은 부분적인 포스트 백 이후에 부분적인 양의 HTML 만 업데이트되고 모달에 대한 Javascript/Jquery가 다시 호출되지 않으므로이 문제에 대한 최상의 솔루션이 아닐 것입니다.

포스트 백 이후에 자바 스크립트를 다시 호출 할 수있는 방법이 필요합니다. Click_Me 이벤트에서 모달을 여는 데 필요한 자바 스크립트를 호출 할 수 있습니다.

protected void Click_Me(object sender, EventArgs e) 
    { 
     // do stuff 
     Label1.Text = "test label"; 
     TextBox1.Text = "text box text"; 
     modal_Img.Src = "test path"; 

     // make sure the modal opens 
     ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "script", "<script type='text/javascript'>$(document).ready(function() { $('#MyModal').modal('show')});</script>", false); 
    } 
+0

내 대답은 당신이 모달 내의 버튼에서'Click_Me' 이벤트를 호출한다고 가정합니다. 그렇지 않은 경우, 모달 창의 기본 기능은 외부를 클릭하면 닫힙니다. 어느 쪽이든, 당신은 그것이 다시 열리고 다시 게시 후에 업데이트를 표시 할 수있는 방법이 필요합니다. –

+0

안녕하세요 그래서 아래 코드를 수정했습니다 - 버튼을 추가했습니다 - 다음에 C# ScriptManager.RegisterClientScriptBlock (this.Page, this.Page.GetType(), "script", " script type = 'text/javascript'> $ (document) .ready (function() {$ ('# MyModal'). 모달 ('show')}); ", false); - 그러나 나는 모달이 나타나는 것을 보지 않는다 - ??? 여기에 뭔가 빠졌습니까 –

+0

@Vivek akk 그게 효과가 있었나요? asp.net 포스트 백 중에 '데이터 토글 (data-toggle)'과 '데이터 타겟 (data-target)'이 작동하지만 'ScriptManager' 코드를 추가하면 기본적으로 페이지를 다시로드 할 때 모달을 열거 나 다시 열 때 필요한 자바 스크립트가 삽입됩니다. . –