把添加过的信息通过列表展示到页面,先添加路由
r.HandleFunc("/cuslist", web.Cuslist)
执行web.Cuslist方法进行数据库查询,这里使用的是页面分页,所以数据库直接把全部数据查询出来。
func Cuslist(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html;charset=utf-8")
t, _ := template.ParseFiles("templates/customer-list.html")
customers, err := dbdata.Cuslist()
if err != nil {
fmt.Println(err)
logger.Log.Error(err)
}
count, err := dbdata.Custotal()
result := make(map[string]interface{})
result["total"] = count
result["list"] = customers
t.Execute(w, result)
}
这里有2个查询,一个是全部数据列表,一个是总数据数。然后把这2个数据放入到map,最后转向页面。
func Cuslist() (customers []model.Customer, err error) {
rows, err := Db.Query("select id,name,taxno,addr,contact,contel,content,addtime from customer order by id desc ")
if err != nil {
logger.Log.Error(err)
return
}
for rows.Next() {
customer := model.Customer{}
err = rows.Scan(&customer.Id, &customer.Name, &customer.Taxno, &customer.Addr, &customer.Contact, &customer.Contel, &customer.Content, &customer.Addtime)
if err != nil {
logger.Log.Error(err)
return
}
customers = append(customers, customer)
}
rows.Close()
return
}
func Custotal() (count int, err error) {
err = Db.QueryRow("select count(*) from customer ").Scan(&count)
return
}
数据库查询出来的数据存入Customer结构体,然后定义切片[]Customer,每组织一条记录就通过append方法放入切片。
页面通过循环list进行展示
{{ range .list }}
<tr class="text-c">
<td>{{ .Id }}</td>
<td><u style="cursor:pointer" class="text-primary" onclick="member_show('查看','/cusinfo','{{ .Id }}','760','510')">{{.Name}}</u></td>
<td>{{.Taxno}}</td>
<td>{{.Contact}}</td>
<td class="text-l">{{.Contel}}</td>
<td>{{.Content}}</td>
<td class="td-manage"> <a title="编辑" href="javascript:;" onclick="member_edit('编辑','/cuseditinit','{{ .Id }}','','510')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a> <a title="删除" href="javascript:;" onclick="member_del(this,'{{ .Id }}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a></td>
</tr>
{{ end }}