苏飞论坛

标题: Ext.net在GridPanel中通过链接查看图片 [打印本页]

作者: Koson    时间: 2012-12-28 11:13
标题: Ext.net在GridPanel中通过链接查看图片
半年前在搞有关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(论坛)



作者: 站长苏飞    时间: 2012-12-28 11:17
支持一下
作者: L_.    时间: 2012-12-28 11:17
内容太长没看
作者: jjloveC#    时间: 2012-12-28 11:23
{:soso_e113:}这里好人好多··好东西更多··感谢
作者: Kaelthas    时间: 2012-12-28 11:27
{:soso_e142:}支持一下
作者: 水手    时间: 2012-12-28 11:32
共同学习
作者: Koson    时间: 2012-12-28 11:38
水手 发表于 2012-12-28 11:32
共同学习

向水手大哥学习
作者: Koson    时间: 2012-12-28 11:39
Kaelthas 发表于 2012-12-28 11:27
支持一下

谢谢支持
作者: Koson    时间: 2012-12-28 11:39
Kaelthas 发表于 2012-12-28 11:27
支持一下

谢谢支持
作者: Koson    时间: 2012-12-28 11:40
jjloveC# 发表于 2012-12-28 11:23
这里好人好多··好东西更多··感谢

经常来看看分享交流
作者: Koson    时间: 2012-12-28 11:41
admin 发表于 2012-12-28 11:17
支持一下

多谢老大提供平台啊
作者: 站长苏飞    时间: 2012-12-28 11:56
Koson 发表于 2012-12-28 11:41
多谢老大提供平台啊

这个真不用感谢,我也需要你们来增加收入,{:soso_e113:}




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4