Bootstrap Modal不工作.(Asp.net,C#)

use*_*150 2 html javascript c# asp.net twitter-bootstrap

我试着从这个网站做一个简单的例子:http: //www.programming-free.com/2013/02/gridviewrow-details-modalpopup-bootstrap.html (我删除了一些字段......只想看看是否有用.当我运行并单击'Detail'时,我只得到这样的黑色背景:http://oi40.tinypic.com/24qlgkg.jpg

这是我的asp代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Shemen.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Modal Popup using Bootstrap</title>
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="js/bootstrap.js" type="text/javascript"></script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <div>
            <h2 style="text-align:center;">
                   Display GridView Row Details in Modal Dialog using Twitter Bootstrap</h2>
            <p style="text-align:center;">
                   Demo by Priya Darshini - Tutorial @ <a href="">Programmingfree</a>
            </p>                     
               <asp:GridView ID="GridView1" runat="server" 
                        Width="940px"  HorizontalAlign="Center"
                        OnRowCommand="GridView1_RowCommand" 
                        AutoGenerateColumns="false"   AllowPaging="false"
                        DataKeyNames="RequestNum" 
                        CssClass="table table-hover table-striped">
                <Columns>
                   <asp:ButtonField CommandName="detail" 
                         ControlStyle-CssClass="btn btn-info" ButtonType="Button" 
                         Text="Detail" HeaderText="Detailed View"/>
            <asp:BoundField DataField="RequestNum" HeaderText="RequestNum" />
               </Columns>
               </asp:GridView>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UpdateProgress1" runat="server">
        <ProgressTemplate>


        <img src="" alt="Loading.. Please wait!"/>
        </ProgressTemplate>
    </asp:UpdateProgress>
    <div id="currentdetail" class="modal hide fade" 
               tabindex=-1 role="dialog" aria-labelledby="myModalLabel" 
               aria-hidden="true">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" 
                  aria-hidden="true">×</button>
            <h3 id="myModalLabel">Detailed View</h3>
       </div>
   <div class="modal-body">
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                    <asp:DetailsView ID="DetailsView1" runat="server" 
                              CssClass="table table-bordered table-hover" 
                               BackColor="White" ForeColor="Black"
                               FieldHeaderStyle-Wrap="false" 
                               FieldHeaderStyle-Font-Bold="true"  
                               FieldHeaderStyle-BackColor="LavenderBlush" 
                               FieldHeaderStyle-ForeColor="Black"
                               BorderStyle="Groove" AutoGenerateRows="False">
                        <Fields>
                 <asp:BoundField DataField="RequestNum" HeaderText="RequestNum" />

                       </Fields>
                  </asp:DetailsView>
           </ContentTemplate>
           <Triggers>
               <asp:AsyncPostBackTrigger ControlID="GridView1"  EventName="RowCommand" />  
           </Triggers>
           </asp:UpdatePanel>
                <div class="modal-footer">
                    <button class="btn btn-info" data-dismiss="modal" 
                            aria-hidden="true">Close</button>
                </div>
            </div>
    </div>
    </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是C#代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Shemen
{


    public partial class WebForm1 : System.Web.UI.Page
    {


        ShemenDataContext sdb = SQLConnection.GetDataContextInstance();

        public List<Request> list;

        protected void Page_Load(object sender, EventArgs e)
        {
            sdb = SQLConnection.GetDataContextInstance();

            list = sdb.Requests.ToList();
            GridView1.DataSource = list;
            GridView1.DataBind();
        }





        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("detail"))
            {

                Request r = sdb.Requests.First();
                var list1 = new List<Request> { r };
                DetailsView1.DataSource = list1;
                DetailsView1.DataBind();
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                sb.Append(@"<script type='text/javascript'>");
                sb.Append("$('#currentdetail').modal('show');");
                sb.Append(@"</script>");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                           "detailModal", sb.ToString(), false);

            }
        }
    }


}
Run Code Online (Sandbox Code Playgroud)

怎么了?谢谢!

小智 5

我按照相同的教程,遇到了同样的问题.对我来说问题原来是css问题.

你原来的模态:

<div id="currentdetail" class="modal hide fade"
    tabindex=-1 role="dialog" aria-labelledby="myModalLabel"
    aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"
            aria-hidden="true">×</button>
        <h3 id="myModalLabel">Detailed View</h3>
    </div>
    <div class="modal-body">
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
        <ContentTemplate>
        <asp:DetailsView ID="DetailsView1" runat="server"
            CssClass="table table-bordered table-hover"
            BackColor="White" ForeColor="Black"
            FieldHeaderStyle-Wrap="false"
            FieldHeaderStyle-Font-Bold="true"
            FieldHeaderStyle-BackColor="LavenderBlush"
            FieldHeaderStyle-ForeColor="Black"
            BorderStyle="Groove" AutoGenerateRows="False">
            <Fields>
                <asp:BoundField DataField="RequestNum" HeaderText="RequestNum" />
            </Fields>
        </asp:DetailsView>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="GridView1"  EventName="RowCommand" />
        </Triggers>
        </asp:UpdatePanel>
        <div class="modal-footer">
            <button class="btn btn-info" data-dismiss="modal"
            aria-hidden="true">Close</button>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

首先从第一行中的class ="modal hide fade"中删除"hide".然后使用class ="modal-dialog modal-content"将modal-header,modal-body和modal-footer包装在div中

这修复了我没有显示的模态对话框.以下是我认为你的模态应该是:

<div id="currentdetail" class="modal fade"
    tabindex=-1 role="dialog" aria-labelledby="myModalLabel"
    aria-hidden="true">
    <div class="modal-dialog modal-content modal-sm">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"
            aria-hidden="true">×</button>
            <h3 id="myModalLabel">Detailed View</h3>
        </div>
        <div class="modal-body">
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <asp:DetailsView ID="DetailsView1" runat="server"
                    CssClass="table table-bordered table-hover"
                    BackColor="White" ForeColor="Black"
                    FieldHeaderStyle-Wrap="false"
                    FieldHeaderStyle-Font-Bold="true"
                    FieldHeaderStyle-BackColor="LavenderBlush"
                    FieldHeaderStyle-ForeColor="Black"
                    BorderStyle="Groove" AutoGenerateRows="False">
                    <Fields>
                        <asp:BoundField DataField="RequestNum" HeaderText="RequestNum"/>
                    </Fields>
                    </asp:DetailsView>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="RowCommand" />
                </Triggers>
            </asp:UpdatePanel>            
        </div>
        <div class="modal-footer">
            <button class="btn btn-info" data-dismiss="modal"
            aria-hidden="true">Close</button>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)