然后用js调用linkbutton的click事件(用自动产生的_dopostback来调用)
在linkbutton的click事件中读图片,然后指定div的内容。
当然,div要runat=server了.
我的笔记:6:对数据库存取图片进行的 *** 作:
核心思想:通过二进制流的形式进行存储和读取。
具体:存储图片:一般是通过文件上传的方式进行存储的
1.首先通过request获得表单中图片的地址
2.然后根据这个路径可以使FileInputStream获得文件输入流
3.pstmt.setBinaryStream(i,
fis,
fis.available())
最后pstmt.executeUpdate()就完成整个插入语句了。
读取:1.根据url的id传一个对应数据库摸个图片的id号
2.根据这个id执行查询,通过rst.getBinaryStream(1)返回一个输入流(里面存的是图片)
3.读输入流,放到字节数组中,再通过response返回一个能输出二进制流的ServletOutputStream实例(ServletOutputStream
sos=
response.getOutputStream()
),
4.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
首先从数据库获取信息到前端,接收数据要用store,你把图片的路径写入数据库中,然后通过store去load数据到前端。然后要看你要怎么展示图片,在哪显示了!
例如使用Ext.XTemplate,自己去写图片显示的位置,样式等。可以去参考ext3.0文档中Ext.DataView的例子
var store = new Ext.data.JsonStore( {
fields : [ "id", "name", "path" ],
url: '....',
......
})
store.load()
var tpl = new Ext.XTemplate('<div class="aaa"><img src="{path}" title="{name}" /></div>',)
var dataview = new Ext.DataView( {
store: store,
tpl: tpl,
........
})
var panel = new Ext.Panel({
.......
items:dataview
)}
还可以使用textfield,这就要自己完成整个panel或window的布局了
例如:
.....
{
columnWidth : .5,
layout : 'form',
labelWidth : 60,
items : [{
xtype : 'textfield',
fieldLabel : '个人照片',
width : 150,
Height : 180,
inputType : 'image',
listeners : { // 该项被载入时加载照片
'render' : function(_filed) {
_filed.getEl().dom.src = "a.jpg"//这里图片的路径可以预先从store中读取,赋给变量然后给它
}
}
}]
}
如果是在grid里显示图片,那么grid中的ColumnModel里可以有一个字段是图片路径,然后通过store传入该路径并显示
例如:
var sm = new Ext.grid.CheckboxSelectionModel()
var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm,
{
header : "图片",
width : 40,
dataIndex : "path",
align : "center",
renderer : function(v) {
return "<img src='" + v +"'>"
}
},
......
还有很多跟图片有关的地方,我暂时也想不起来,看具体情况具体解决了,总之后台对应的是数据库,前台对应的是store,前后交互就是把后台的数据放store里,然后前台根据store做前台该做的事
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)