在引导程序弹出窗口中显示一个光滑的网格行编辑器

时间:2013-02-22 05:41:55

标签: javascript twitter-bootstrap slickgrid popover

我在光滑网格的列中有一个编辑和删除链接。当我点击编辑按钮时,我想要一个带有行详细信息的bootstrap popover。

我成功的程度使我能够呈现弹出窗口,但看起来它隐藏在桌子后面。我尝试设置z-index,但无济于事。代码如下:

    var popoverReference = $(".growthGridActions_edit").popover({
        'title': 'Edit Record',
        'html' : true,
        'placement' : 'left',
        'template': popOverTemplate
    });
    popoverReference.click(function(e) {
        var me = $(this), rowid = me.attr('rowId');

        var editGrowthRecordView = new WTG.view.GrowthEditView({
            template:$("#GROWTH-RECORD-EDIT").html(),
            model: new WTG.Model(growthGridRef.getDataItem(rowid))
        });

        editGrowthRecordView.render();

        $("#"+me.attr('id')).attr('data-content', editGrowthRecordView.$el.html());
        var popover = $("#"+me.attr('id')).data('popover');
        popover.setContent();
        popover.$tip.addClass(popover.options.placement);
    })

请帮忙

2 个答案:

答案 0 :(得分:1)

我正在做类似的事情。当我在我的光滑网格中双击一行时,我出现了一个引导模式。模态显示我使用AJAX获取的行的详细信息(以及更多信息)。这很好用,没有z-index的问题。

也许我们的方法有点太不同了,但我希望下面的代码有所帮助。

引导程序模式

<div id="user-details-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="width: 650px">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">User View</h3>
    </div>
    <div class="modal-body">
        <form class="form-horizontal" action="/user/update" method="POST">
            <input type="hidden" id="userId" name="userId"/>
            <div class="control-group">
                <label class="control-label" for="firstName">First Name</label>
                <div class="controls">
                    <div class="input-prepend">
                        <span class="add-on"><i class="icon-user"></i></span>
                        <input class="input-xlarge" type="text" required id="firstName" name="firstName" placeholder="First Name">
                    </div>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="lastName">Last Name</label>
                <div class="controls">
                    <div class="input-prepend">
                        <span class="add-on"><i class="icon-user"></i></span>
                        <input class="input-xlarge" type="text" required id="lastName" name="lastName" placeholder="Last Name">
                    </div>

                </div>
            </div>

... more fields

    <div class="modal-footer">
        <button type="submit" class="btn btn-info">Save Changes</button>
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    </div>
</div>

光滑网格设置

setupGrid:(onDblClick)->
    grid = new Slick.Grid(@gridId, dataView, @columns, options)
    grid.setSelectionModel(new Slick.RowSelectionModel({ selectActiveRow: true }))
    grid.onDblClick.subscribe((e, args)->
        onDblClick(dataView.getItem(args.row).id);
    )
    $(window).resize(->
        grid.resizeCanvas()
    )

显示模态

onDblClick = (id) =>
    $userDetails = $('#user-details-modal')
    $.get('/user/' + id + '/details')
    .success((results)->
        $userDetails.find('#userId').val(results.id)
        $userDetails.find('#firstName').val(results.FirstName)
        $userDetails.find('#lastName').val(results.LastName)
        $userDetails.find('#userName').val(results.UserName)
        $userDetails.find('#email').val(results.Email)
        $userDetails.find('#password').val(results.Password)
        $userDetails.modal()
    )

答案 1 :(得分:1)

我和op有同样的问题。不知道为什么这是标记答案,因为最初的问题是关于bootstrap pop over和答案是关于模态的。我猜测op改为模态。

无论如何只是在尝试在slickgrid中使用bootstrap popover时,如果其他人有同样的问题就发布这个来解决这个问题,只需将容器设置为body ... data-container ='body'