2017-05-26 92 views
4

我想打开一个按钮模式点击。模式可以用一个按钮,点击如何从后面的代码打开模态?

<asp:Button ID="Button4" runat="server" class="btn btn-info" data-toggle="modal" OnClientClick="return false;" data-target="#View1" Text="View Details" /> 

我需要在函数结束时打开此模式被打开,但我不知道如何做到这一点,从C#代码后面。我想:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(this, this.GetType(), "ModalView", "<script>$('#View1').modal('show');</script>", false); 
} 

设计

<!-- modal 1 --> 
<div class="modal fade" id="View1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" runat="server"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="alert alert-success"> 

       <strong>Well done!</strong> Successfully Saved  
      </div> 
     </div> 
     <!-- modal-content --> 
    </div> 
    <!-- modal-dialog --> 
</div> 
<!-- modal --> 

enter image description here

+0

你检查控制台?有没有错误?而'View1'不在你的代码片段中。 – VDWWD

+0

我没有发现任何错误..!模型是可见的直接鼠标点击'button4'.I检查C#代码['button2]'与断点,没有错误,但它不工作..!我认为C#代码不正确。 – Kirk

+1

我认为你的代码在你加载页面之前正在执行。 (),“this.GetType(),”ModalView“,” “,false);' –

回答

1

我猜你的脚本它试图指实际呈现的HTML之前运行。您可以通过在渲染页面上查看源代码轻松进行检查。如果该启动脚本的页面高于您的模式的HTML,那么它将不起作用,因为脚本在页面上呈现后立即运行,并且在HTML呈现之前运行,因此它会尝试运行“show “在尚不存在的元素上。你不会得到一个错误,因为jQuery的工作方式意味着如果它的选择器不匹配任何元素,它就不会执行你指定要在选定元素上运行的任何命令。

如果出现这种问题,可以通过更改启动脚本,使它不会运行“显示”代码,直到整个页面加载完毕为止。这可以通过使用jQuery的标准“的document.ready”语法来完成(我在这里使用的简写):

ScriptManager.RegisterStartupScript(this, this.GetType(), "ModalView", "<script>$(function() { $('#View1').modal('show'); });</script>", false); 

你还需要确保你有你的页面ScriptManager控件的地方(在<form>内标签):

<asp:ScriptManager runat="server"></asp:ScriptManager> 
1

可以有两个问题:

  1. 你要加载的页面加载之前模型
  2. 你的模态的ID不同

变化厂景DIV1

请试试这个代码

ScriptManager.RegisterStartupScript(this, this.GetType(), "ModalView", " 
<script>$(document).ready(function(){$('#Div1').modal('sho‌​w');});</script>", false); 
2

首先,请确保ScriptManager的被放置在表单标签的aspx页面。 其次确保代码在客户端工作。

请参阅我下面的代码: ASPX代码:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" /> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div id="myModal" class="modal fade" role="dialog"> 
      <div class="modal-dialog"> 

       <!-- Modal content--> 
       <div class="modal-content"> 
        <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal">&times;</button> 
         <h4 class="modal-title">Modal Header</h4> 
        </div> 
        <div class="modal-body"> 
         <p>Some text in the modal.</p> 
        </div> 
        <div class="modal-footer"> 
         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
        </div> 
       </div> 

      </div> 
     </div> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
     <asp:ScriptManager runat="server"></asp:ScriptManager> 
    </form> 
</body> 

服务器端代码:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
    sb.Append(@"<script language='javascript'>"); 
    sb.Append(@"$('#myModal').modal('show');"); 
    sb.Append(@"</script>"); 

    ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString()); 
} 
相关问题