bootstrap table實現從後臺搜尋
阿新 • • 發佈:2019-01-23
剛開始嘗試了好幾種方法,都不頂用,最後還是想從官網提供的方法入手bootstrap table有一個“refresh”方法,將此方法繫結到搜尋按鈕實現從server端的搜尋。
首先來看看官網的refresh方法提供的引數【重新整理遠端資料, {silent: true} 重新整理客戶端資料,{url: newUrl}根據newUrl重新整理資料,還支援設定引數哦{query: {foo: 'bar'}}】
這裡主要是用到最後一個引數。
其它的多餘指令碼可以看我的《bootstrap table學習小記》一文,下面主要按鈕的前臺的指令碼
前臺指令碼:
<span style="font-family:Times New Roman;"><span style="font-size:14px;"><div class="form-group"> <label class="col-md-4 control-label" for="searchtext"><span class="glyphicon glyphicon-search" aria-hidden="true"></span>使用者名稱</label> <div class="col-md-8"> <input type="text" name="search" class="form-control" id="searchtext" placeholder="請輸入使用者名稱"/> </div> </div></span></span>
後臺的函式:<span style="font-family: 'Times New Roman';"><span style="font-size:14px;">$("#search").bind("click",function(){ searchtext=$("#searchtext").val(); if (searchtext==''){ alert("請輸入需要搜尋的使用者名稱"); return } $(".search input").val(searchtext); $("#table").bootstrapTable('refresh',{query: {text:searchtext}}); });</span></span>
<pre name="code" class="python">def userssource1(request): userlist=[] searchtext = request.POST.get('text','') username = request.session.get('uname','null') limit = request.POST.get('limit','') offset = request.POST.get('offset','') offset = int(offset) limit = int(limit) unitid=request.POST.get('unit','') userid= Users.objects.filter(name=username)[0].userid if not searchtext:#剛開始搜素框裡並沒有值,所以此時從資料庫中取出所有的資料 userlefts = Users.objects.filter(unit=unitid)[offset:offset+limit] #userlefts = Users.objects.filter(unit=unitid) length=Users.objects.filter(unit=unitid).count() if len(searchtext)>0:#當搜素框裡有值時,只從資料庫中取出要搜素的使用者 user1=Users.objects.filter(name__startswith=searchtext,unit=unitid) userlefts = user1[offset:offset+limit] length=len(user1) for usr in userlefts: user_id=usr.id if len(UserUnitPrivs.objects.filter(useridx=user_id)): if len(UserUnitPrivs.objects.filter(useridx=user_id)[0].unitidx)==2: user_unitidx=UserUnitPrivs.objects.filter(useridx=user_id)[0].unitidx unitname1=Unit.objects.filter(unitidx2=user_unitidx)[0].name1 unitname2=Unit.objects.filter(unitidx2=user_unitidx)[0].name2 admin=get_user_privs(usr.userid) c ={'id':usr.id,'name':usr.name,'unit':usr.unit,'usrid':str(usr.userid),'admin':admin,'unitname1':unitname1,'unitname2':unitname2,'realname':usr.real_name,'gender':usr.gender,'phone':usr.tel_num,'email':usr.email,'address':usr.address} userlist.append(c) data='{"total":%s,"rows":%s}' % (length,simplejson.dumps(userlist,ensure_ascii=False)) #如果是服務端分頁,返回的結果必須包含total、rows兩個引數。漏寫或錯寫都會導致表格無法顯示資料。 return HttpResponse(data,mimetype='text/javascript;')
下面這幅圖是不設定搜尋值的結果
下面這幅圖是搜尋框中傳了“哈哈”搜尋值的結果圖