asp.net – 当绑定值包含冒号时,如何绑定GridView HyperLinkField的URL?
|
我正在尝试绑定GridView HyperLinkField,以便将绑定列用作URL中的参数值.非常标准的东西 – 没有什么花哨的东西,但是当绑定列包含冒号时绑定失败,即:.我是我的特例,这个值是一个表示持续时间的字符串,例如“14:35”,或“1:07:19”. 这是我的GridView,其时间值绑定到HyperLinkField网址. <asp:GridView ID="ResultsGridView" runat="server" AutoGenerateColumns="False"
DataSourceID="ResultsDataSource" EnableModelValidation="True"
AllowPaging="True">
<Columns>
<asp:BoundField DataField="Year" HeaderText="Year" SortExpression="Year" />
<asp:HyperLinkField DataNavigateUrlFields="RunTime"
DataTextField="RunTime" HeaderText="Hyperlink"
DataNavigateUrlFormatString="LinkedPage.aspx?param={0}" />
<asp:BoundField DataField="RunTime" HeaderText="Time"
SortExpression="RunTime" />
<asp:BoundField DataField="FullName" HeaderText="Name"
SortExpression="FullName" ReadOnly="True" />
</Columns>
</asp:GridView>
它产生这样的HTML.注意< a>标签没有href属性. <tr>
<td>2010</td><td><a>34:58</a></td><td>34:58</td><td>Joe Schmoe</td>
</tr><tr>
<td>2010</td><td><a>35:30</a></td><td>35:30</td><td>Rod Krueger</td>
</tr><tr>
<td>2010</td><td><a>35:38</a></td><td>35:38</td><td>Mike Johnson</td>
</tr>
但是,如果我将绑定字段从RunTime切换到Year,即切换到值中不包含冒号的列,它将按预期工作.上面的GridView,并更改HyperLinkField的DataNavigateUrlFields属性,如下所示: <asp:HyperLinkField DataNavigateUrlFields="Year"
DataTextField="RunTime" HeaderText="Hyperlink"
DataNavigateUrlFormatString="LinkedPage.aspx?param={0}" />
现在HTML输出是正确的,如下所示: <tr>
<td>2010</td><td><a href="LinkedPage.aspx?param=2010">34:58</a></td><td>34:58</td><td>Joe Schmoe</td>
</tr><tr>
<td>2010</td><td><a href="LinkedPage.aspx?param=2010">35:30</a></td><td>35:30</td><td>Rod Krueger</td>
</tr><tr>
<td>2010</td><td><a href="LinkedPage.aspx?param=2010">35:38</a></td><td>35:38</td><td>Mike Johnson</td>
</tr><tr>
所以我的问题的核心是:如何将包含冒号的数据列绑定到HyperLinkField的URL?或者,如果失败,用另一种方法创建相同的绑定超链接? 将数据格式更改为不包括冒号将是最后的手段,因为LinkedPage.aspx需要该格式的参数值,并且已经编写,测试和使用. 解决方法<asp:TemplateField HeaderText="Hyperlink">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("RunTime",@"LinkedPage.aspx?param={0:hh:mm}") %>'
Text='<%# Eval("RunTime",@"{0:hh:mm}") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC4中的ELMAH和API控制器不记录错误
- asp.net – 从DropDownList中删除列表项
- asp.net – SqlException(0x80131904):第28行:(‘.)附近的
- asp.net – 抛出类型“System.OutOfMemoryException”的异常
- asp.net – MembershipUser和IPrincipal对象之间的关系
- asp.net-mvc – 如何改变jslint(VS 2010扩展)忽略文件?
- asp.net-mvc – 有没有人使用史蒂夫·桑德森的MvcIntegrati
- 解决asp.net Sharepoint无法连接发布自定义字符串处理程序,
- 我可以在.NET中设置IIS MIME类型吗?
- asp.net * WebForms *开发人员将来可以期待什么?
- .net – 制作类似TinyURL.com的简短网址
- asp.net – “%:”做什么?
- asp.net – 在asp:Button中包装文本
- asp.net – 如何在Gridview中绑定DropDownList,而
- asp.net-mvc – DataAnnotationsModelBinder如何
- asp.net-mvc – HttpPost和HttpGet属性在MVC:为
- asp.net-mvc-4 – 在EF迁移配置类的Seed方法中获
- asp.net-mvc – 将asp.net服务器参数传递给Angul
- Asp.Net成员 – 实体框架4中的提供商
- asp.net-mvc-routing – ASP MVC 5属性路由VS.基
