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汉字转拼音和获取汉字首字母的代码
 - asp.net-mvc – MVC 3布局页面,Razor模板和下拉列表
 - asp.net-mvc-3 – 在MVC Razor View中使用If语句
 - asp.net – CalendarExtender定位问题
 - ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile(“a
 - asp.net-web-api – WebAPI 2属性路由启用会话状态
 - asp.net-mvc – ActionResult上的自定义属性
 - asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代
 - asp.net-mvc – Url.RouteUrl返回null
 - 在ASP.NET 2.0中的特定时间清除缓存
 
- asp.net-mvc – 无法在Web服务器上启动调试.调试
 - asp.net-mvc – 控制器操作无法从JSON读取Guid P
 - asp.net页面SqlCacheDependency缓存实例
 - asp.net-mvc – 从MVC版本1迁移后,ASP.NET MVC 2
 - MVC SessionStateAttribute不作为全局属性
 - 如何在ASP.NET页面上使用框架?
 - asp.net-mvc – ASP.NET MVC的Content / Themes
 - asp.net+ajaxfileupload.js 实现文件异步上传代码
 - ASP.NET Core使用SkiaSharp实现验证码的示例代码
 - asp.net-mvc – ASP.NET MVC模型/ ViewModel验证
 
