苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 16826|回复: 11

[ExtJs] Ext.net在GridPanel中通过链接查看图片

[复制链接]
发表于 2012-12-28 11:13:49 | 显示全部楼层 |阅读模式
半年前在搞有关Ext.net+wcf的项目。遇到了很多问题,因为初次接触,也解决了不少的问题。把以前的笔记纪录的小的细节贴出来。

就此时而言,希望在GridPanel中的一列显示图片,但是考虑到图片会比较大,就采用了给出一个超链接,点击便可以查看

图片。附上图片以及示例代码:

1、图片:


2、Store部分代码:
  1. <ext:Store ID="Store1" runat="server" AutoSync="true" ShowWarningOnFailure="false" OnReadData="Store1_Refresh">
  2.              <Model>
  3.                 <ext:Model ID="Model1" runat="server" IDProperty="Id" Name="StoreInfo">
  4.                     <Fields>
  5.                         <ext:ModelField Name="ID" Type="Int" />
  6.                         <ext:ModelField Name="CATEGORYID" Type="Int" />
  7.                         <ext:ModelField Name="RECOMMENDEDCATEGORYID" Type="Int" />
  8.                         <ext:ModelField Name="NAME" Type="String" />
  9.                         <ext:ModelField Name="ADDRESS" Type="String" />
  10.                         <ext:ModelField Name="LASTUPDATETIME" Type="Date" />
  11.                         <ext:ModelField Name="IMAGE" Type="Auto" />
  12.                     </Fields>
  13.                 </ext:Model>
  14.             </Model>
  15.         </ext:Store>
复制代码
3、GridPanel部分代码:
  1. <ext:GridPanel
  2.                     ID="GridPanel1"
  3.                     runat="server"
  4.                     Title="资料信息"
  5.                     Margins="0 5 0 0"
  6.                     MinHeight="300"
  7.                     Region="Center"
  8.                     Icon="Application"
  9.                     StoreID="Store1" >
  10.                     <ColumnModel ID="ColumnModel1" runat="server">
  11.                         <Columns>
  12.                             <ext:Column ID="Column1" runat="server" Text="位置编号" DataIndex="LOCATIONID" />
  13.                             <ext:Column ID="Column2" runat="server" Text="分类编号" Width="75" DataIndex="CATEGORYID" />
  14.                             <ext:Column ID="Column3" runat="server" Text="推荐分类编号" DataIndex="RECOMMENDEDCATEGORYID" />
  15.                             <ext:Column ID="Column4" runat="server" Text="名称" DataIndex="NAME" />
  16.                             <ext:Column ID="Column5" runat="server" Text="地址" DataIndex="ADDRESS" Flex="1" />
  17.                              <ext:Column ID="Column13" runat="server" Text="最近更新时间" DataIndex="LASTUPDATETIME">
  18.                                 <Renderer Fn="Ext.util.Format.dateRenderer('Y-m-d H:i:s')" />   
  19.                             </ext:Column>
  20.                             <ext:Column ID="Column14" runat="server" Text="图片" DataIndex="LOCATIONID" Sortable="false">
  21.                                 <PrepareCommand Handler="" Args="grid,command,record,row,col,value" FormatHandler="false">  
  22.                                 </PrepareCommand>
  23.                                 <Renderer Fn="ShowLink" />
  24.                             </ext:Column>
  25.                         </Columns>
  26.                     </ColumnModel>
  27.                     <SelectionModel>
  28.                         <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
  29.                             <Listeners>
  30.                                 <Select Handler="#{Form}.getForm().loadRecord(record);#{txtHideID}.setValue(record.data.LOCATIONID); " />
  31.                             </Listeners>
  32.                         </ext:RowSelectionModel>
  33.                     </SelectionModel>  
  34.                     <TopBar>
  35.                         <ext:Toolbar ID="ToolBarLocation" runat="server">
  36.                             <Items>
  37.                                 <ext:Button ID="btnViewFav" runat="server" Text="查看收藏" Icon="BookGo">
  38.                                      <DirectEvents>
  39.                                         <Click OnEvent="btnViewFav_Click">
  40.                                             <EventMask Msg="Loading……" MinDelay="500" ShowMask="true" />
  41.                                         </Click>
  42.                                     </DirectEvents>
  43.                                 </ext:Button>
  44.                             </Items>
  45.                         </ext:Toolbar>
  46.             </TopBar>         
  47.                 </ext:GridPanel>
复制代码
4、javascript部分代码:
  1. <script type="text/javascript">
  2.         function ShowLink(Id) {
  3.             var temp = '<a href="image.ashx?type=img&id=' + Id + '" target="_blank" style="color:#08C; text-decoration:none;">查看图片</a>';
  4.             return temp.toString();
  5.         }
  6. </script>
复制代码
5、服务端返回图片的代码(我这里用的时一般处理文件ashx):
  1. public class image : IHttpHandler
  2.     {

  3.         //设置格式(图片/文本等,不然会出现乱码,代码略)
  4.         public void ProcessRequest(HttpContext context)
  5.         {
  6.             if (context.Request["id"] == null )
  7.             {
  8.                 context.Response.Write("读取错误,没有可读取资源…… ");
  9.                 return;
  10.             }

  11.             int intID = int.Parse(context.Request["id"]);
  12.             WCFService.Service1 wcfService = new WCFService.Service1();
  13.              context.Response.BinaryWrite((byte[])wcfService.GetImage(intID));
  14.         }

  15.         public bool IsReusable
  16.         {
  17.             get
  18.             {
  19.                 return false;
  20.             }
  21.         }
  22.     }
复制代码

最后附上简要说明:
Store的数据在后台绑定的Wcf端返回的json数据。GridPanel使用Store1.当加载数据的时候 <Renderer Fn="ShowLink" />

指向了js部分的 ShowLink 的方法。返回了一个超链接。超链接链接到了一般处理文件,一般处理文件写出的是一个二进制流

形式的图片文件(注意设置编码),能给显示在页面。这样就实现了点击链接显示查看图片的功能了。当然,要实现把图片显示在GridPanel中

也是可以的。只要修改javascript 部分可以实现。
发表的个人浅见,因为接触Ext.net不久,有错误之处请指正,共同学习。


原创: Koson
QQ : 674946329
Email: 674946329@qq.com(个人)
           koson@sufeinet.com(论坛)


1341891231_9965.png


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2012-12-28 11:17:36 | 显示全部楼层
支持一下
发表于 2012-12-28 11:17:50 | 显示全部楼层
内容太长没看
发表于 2012-12-28 11:23:53 | 显示全部楼层
{:soso_e113:}这里好人好多··好东西更多··感谢
发表于 2012-12-28 11:27:19 | 显示全部楼层
{:soso_e142:}支持一下
发表于 2012-12-28 11:32:09 | 显示全部楼层
共同学习
 楼主| 发表于 2012-12-28 11:38:53 | 显示全部楼层
水手 发表于 2012-12-28 11:32
共同学习

向水手大哥学习
 楼主| 发表于 2012-12-28 11:39:23 | 显示全部楼层
Kaelthas 发表于 2012-12-28 11:27
支持一下

谢谢支持
 楼主| 发表于 2012-12-28 11:39:28 | 显示全部楼层
Kaelthas 发表于 2012-12-28 11:27
支持一下

谢谢支持
 楼主| 发表于 2012-12-28 11:40:20 | 显示全部楼层
jjloveC# 发表于 2012-12-28 11:23
这里好人好多··好东西更多··感谢

经常来看看分享交流
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-24 03:32

© 2014-2021

快速回复 返回顶部 返回列表