GridView实现超链接列和图片列,跳转页面并传递参数
2015-06-26 20:01
531 查看
「注意!请勿私自转载!」
最近在使用ASP.NET建设网站,需要解决如标题所示的问题,上网可以搜出很多答案。现在简单总结一下我的解决办法,方便各位取用,有任何疑问欢迎提出交流。
(注:使用VB语言。)
※为表格添加一列超链接列,每一项都指向特定的页面。
由于不能逐个设定链接的地址(而且数据项多时这么做也不科学;或者使用数据库进行逐个设定),因此使用参数传递便可以链接到指定的目标页面。接下来以商品展示的页面为例介绍实现方法。
在aspx页面的body中插入如下代码:
如果要传递多个参数,则这样修改:
在对应的vb文件里或者在<script runat="server"></script>里面写入以下代码:
最后显示结果大概如下:
如果想把链接列放到最后一列或者改变字段的显示名字,改用Boundfield会很方便。(使用方法可看目标页面的设置)
※添加图片列。
目标页面的设置如下:
需要在数据库表里的Image字段里写好要显示的图片的相对路径,若在上级的另一文件夹中,则可这样写:/img/pic.jpg
这样,在目标页面里,GridView就会根据不同的商品编号来显示相应的商品信息。效果大概如下:
最近在使用ASP.NET建设网站,需要解决如标题所示的问题,上网可以搜出很多答案。现在简单总结一下我的解决办法,方便各位取用,有任何疑问欢迎提出交流。
(注:使用VB语言。)
※为表格添加一列超链接列,每一项都指向特定的页面。
由于不能逐个设定链接的地址(而且数据项多时这么做也不科学;或者使用数据库进行逐个设定),因此使用参数传递便可以链接到指定的目标页面。接下来以商品展示的页面为例介绍实现方法。
在aspx页面的body中插入如下代码:
<form id="form1" runat="server"> <div align="center"> <asp:GridView ID="GridView1" runat="server" DataKeyNames="SPID" CellPadding="5" width="70%"> <Columns> <asp:HyperLinkField DataNavigateUrlFields="SPID" DataNavigateUrlFormatString="GoodsDetail.aspx?SPID={0}" HeaderText="链接" Text="查看详情" /> <%--创建超链接列,指定要传递的参数的数据源字段,并添加在目标页面后。--%> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ></asp:SqlDataSource> </div> </form>
如果要传递多个参数,则这样修改:
<asp:HyperLinkField DataNavigateUrlFields="SPID,SPName" DataNavigateUrlFormatString="GoodsDetail.aspx?SPID={0}&SPName={1}" HeaderText="链接" Text="查看详情" /> <%--指定两个参数,{0}表示选择第一个参数--%>
在对应的vb文件里或者在<script runat="server"></script>里面写入以下代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim conn As New SqlConnection() Dim cmd As New SqlCommand() Dim objReader As SqlDataReader conn.ConnectionString = "Data Source =.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\GOODS.mdf;Integrated Security=True" '数据库名称为GOODS conn.Open() cmd.Connection = conn cmd.CommandText = "Select SPID,SPName From SP" ‘使用SQL语句,显示SP表里SPID和SPName字段的所有记录 objReader = cmd.ExecuteReader() GridView1.DataSource = objReader GridView1.DataBind() conn.Close() End If End Sub
最后显示结果大概如下:
链接 | SPID | SPName |
查看详情 | 1 | AAA |
查看详情 | 2 | BBB |
※添加图片列。
目标页面的设置如下:
<form id="form1" runat="server"> <div align="center"> <asp:GridView ID="GridView1" runat="server" DataKeyNames="SPID" CellPadding="5" AutoGenerateColumns="False"> <%--设置AutoGenerateColums可避免列重复出现--%> <Columns> <asp:BoundField DataField="SPID" HeaderText="编号" /> <asp:BoundField DataField="SPName" HeaderText="名称" /> <asp:BoundField DataField="Price" HeaderText="价格" DataFormatString="{0:C}" /> <asp:BoundField DataField="Brief" HeaderText="简介"> <ItemStyle width="300" /> <%--设置此单元格的宽度--%> </asp:BoundField> <asp:ImageField DataImageUrlField="Image" HeaderText="商品图片"> <ControlStyle Width="250" /> <%--设置图片的宽度--%> </asp:ImageField> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource> </div> </form>
需要在数据库表里的Image字段里写好要显示的图片的相对路径,若在上级的另一文件夹中,则可这样写:/img/pic.jpg
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim conn As New SqlConnection() Dim cmd As New SqlCommand() Dim objReader As SqlDataReader conn.ConnectionString = "Data Source =.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\GOODS.mdf;Integrated Security=True" conn.Open() cmd.Connection = conn cmd.CommandText = "Select SPID,SPName,Price,Brief,Image from SP Where SPID = @SPID" '在SQL语句里可以看出调用了传递过来的参数SPID Dim para As New SqlParameter("@SPID", SqlDbType.Int, 4) '设置参数 cmd.Parameters.Add(para) cmd.Parameters("@SPID").Value = Request.QueryString("SPID").ToString() '获取参数 objReader = cmd.ExecuteReader() GridView1.DataSource = objReader GridView1.DataBind() conn.Close() End If End Sub
这样,在目标页面里,GridView就会根据不同的商品编号来显示相应的商品信息。效果大概如下:
编号 | 名称 | 价格 | 简介 | 商品图片 |
1 | AAA | ¥1 | XXXXX | 图片1 |
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 星外ASP.Net的安全设置相关说明
- 开通一个数据库失败的原因的和解决办法
- VB简单实现防止文件被改写
- 一个简单的asp数据库操作类
- VB获取文件大小的方法
- VB实现禁用任务管理器的方法
- CentOS下DB2数据库安装过程详解
- VBS教程:运算符-运算符(+)
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- VB实现的16位和32位md5加密代码分享