bootstrap 点击table中某一列,弹出模态框

(一)bootstrap-table中测量值太长了,显示不美观,为了显示美观,把测量值大于20个字,让其显示详情,鼠标悬浮到这个值 时候,出现悬浮框。

原页面效果:



代码实现:

(1)后台返回的数据到前台table

<div class="row row-lg">
                    <div class="col-sm-12">
                        <table id="detaillistTable"
                               data-toggle="table"
                               data-url="detail.do?auditlist&audittype=1&doctorid=${doctorid}"
                               data-cache="false"
                               data-unique-id="id"
                               data-striped="true"
                               data-row-style="rowStyle">
                            <thead>
                                <tr>
                                    <th data-field="index" data-align="center" data-formatter="indexformat"></th>
                                    <th data-field="doctorusername" data-visible="true" data-halign="center" data-align="center" data-sortable="true">登陆账号</th>
                                    <th data-field="doctorname" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="doctorname">医生姓名</th>
                                    <th data-field="patientname" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="patientname">病人姓名</th>
                                    <th data-field="checkitem" data-visible="true" data-halign="center" data-align="center" data-sortable="true">检查项目</th>
                                    <th data-field="amount" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="amount">扣费金额</th>
                                    <th data-field="remark" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="remarks">测量值</th>
                                    <th data-field="createdate" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="formatDateTime">时间</th>
                                </tr>
                            </thead>
                        </table>
                    </div>
                </div>

(2)测量值悬浮框js代码(利用title,跟abbr标签差不多)

function remarks(value, row, index) {
    if (value.length > 20) {
        return "<div style=\"font-family:'微软雅黑'\" title='" + value + "'><a>详情</a></div>";
    } else {
        return "<div style=\"font-family:'微软雅黑'\">" + value + "</div>";
    }
}

悬浮框页面效果:(鼠标移动到详情,出现悬浮框)




(二)这个页面要给触屏设备使用,这个设备没有鼠标,显然上面的方案行不通了,我们就想到了,动态模态框处理,点击详情时候,弹出模态框。

动态模态框基本案例:

<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>

<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      ...
    </div>
  </div>
</div>

我们要做的就是把回台返回的测量值,变成这种模态框样式。

页面效果:点击详情


(1)后台返回的数据到前台table

<div class="row row-lg">
                    <div class="col-sm-12">
                        <table id="detaillistTable"
                               data-toggle="table"
                               data-url="detail.do?auditlist&audittype=1&doctorid=${doctorid}"
                               data-cache="false"
                               data-unique-id="id"
                               data-striped="true"
                               data-row-style="rowStyle">
                            <thead>
                                <tr>
                                    <th data-field="index" data-align="center" data-formatter="indexformat"></th>
                                    <th data-field="doctorusername" data-visible="true" data-halign="center" data-align="center" data-sortable="true">登陆账号</th>
                                    <th data-field="doctorname" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="doctorname">医生姓名</th>
                                    <th data-field="patientname" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="patientname">病人姓名</th>
                                    <th data-field="checkitem" data-visible="true" data-halign="center" data-align="center" data-sortable="true">检查项目</th>
                                    <th data-field="amount" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="amount">扣费金额</th>
                                    <th data-field="remark" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="remarks">测量值</th>
                                    <th data-field="createdate" data-visible="true" data-halign="center" data-align="center" data-sortable="true" data-formatter="formatDateTime">时间</th>
                                </tr>
                            </thead>
                        </table>
                    </div>
                </div>

   在原有页面上添加悬浮框代码:

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" data-backdrop="static">
        <div class="modal-dialog">
         <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
              <h4 class="modal-title" id="exampleModalLabel">测量值:</h4>
          </div>
          <div class="modal-body">
            <textarea class="form-control" id="message-text">"+value+"</textarea>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
           </div>
         </div>
        </div>
    </div>

(2)测量值悬浮框js代码

function remarks(value, row, index) {
    if (value.length > 20) {
        $("#message-text").val(value);
        return "<button type=\"button\" class=\"btn btn-link\" data-toggle=\"modal\" data-target=\"#exampleModal\">详情</button>";
    } else {
        return "<div style=\"font-family:'微软雅黑'\">" + value + "</div>";
    }
}



  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在JSP按钮框,可以使用Bootstrap框架的Modal组件来实现。 首先,在JSP页面引入Bootstrap的CSS和JS文件: ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script> ``` 然后,在页面添加一个按钮: ```html <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">打开框</button> ``` 其,`data-toggle="modal"`表示点按钮时框,`data-target="#exampleModal"`表示框的ID为exampleModal。 最后,在页面添加框的HTML代码: ```html <div class="modal" tabindex="-1" role="dialog" id="exampleModal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">框标题</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>框内容</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button> <button type="button" class="btn btn-primary">保存</button> </div> </div> </div> </div> ``` 在上述代码,`id="exampleModal"`与按钮的`data-target="#exampleModal"`对应,`class="modal"`表示这是一个框,`role="dialog"`表示角色为对话框。 点按钮后,框就会,点关闭按钮或者点框外部区域都可以关闭框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值