GridView中添加HyperLinkField时DataNavigateUrlFields的问题

探讨了在ASP.NET GridView控件中使用HyperLinkField时遇到的问题,即当DataNavigateUrlFields指向DATE类型字段时,链接无法正常显示。通过在查询语句中使用to_char方法进行类型转换解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一次尝试中偶尔发现一个GridView的问题

     往GridView中添加HyperLinkField的时候,指定DataNavigateUrlFields,绑定字段。代码如下:

 

ContractedBlock.gifExpandedBlockStart.gifCode
 1<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns="False">
 2            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
 3            <RowStyle BackColor="#EFF3FB" />
 4            <EditRowStyle BackColor="#2461BF" />
 5            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
 6            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
 7            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
 8            <AlternatingRowStyle BackColor="White" />
 9            <Columns>
10                <asp:HyperLinkField DataNavigateUrlFields="create_date" DataNavigateUrlFormatString="~/apply_list.aspx?id={0}" DataTextField="user_name" HeaderText="姓名" />
11            </Columns>
12        </asp:GridView>

运行的时候发现这个HyperLinkField不显示为链接,而是普通文本的方式。百思不得其解,后偶然发现这个create_date在数据库中是一个DATE类型的字段(Oracle数据库),如映射一个Vchar类型的字段则不会有问题。

于是在SELECT 语句中增加to_char方法,问题解决。

 

DataNavigateUrlFields维护的是一个String的数组,可是查找MSDN上的原型声明的时候是有一个转换的操作的。

 

ContractedBlock.gifExpandedBlockStart.gifCode
[TypeConverterAttribute(typeof(StringArrayConverter))] 
public virtual string[] DataNavigateUrlFields { getset; }

转载于:https://www.cnblogs.com/cloudwalf/archive/2008/09/23/1297415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值