【问题标题】:Combining Strings in ASP.NET Attributes在 ASP.NET 属性中组合字符串
【发布时间】:2012-01-26 21:18:18
【问题描述】:

我正在尝试在属性内连接一个字符串。我得到一个错误。我认为这与我的Eval 有关。是否有正确的方法来连接字符串,或者这只是不可能的。我认为问题在于我设置 NavigateUrl 的位置。

<asp:HyperLink ID="lb" 
               runat="server" 
               Text='<%#Eval("Key.Id") %>' 
               NavigateUrl='ViewItem.aspx?id=' + '<%# Eval("Key.Id") %>'/>

【问题讨论】:

  • 你为什么不在代码隐藏中做呢?
  • @sub13 它在 GridView 中。我还能这样做吗?
  • 是的 - 我做到了(见我的回答)

标签: asp.net gridview


【解决方案1】:

简答:NavigateUrl='&lt;%# Eval("Key.Id", "ViewItem.aspx?id={0}") %&gt;'

更长的解释:

您的代码中的问题是您仅对部分 Web 控件属性使用数据绑定表达式。您需要移动数据绑定表达式中的所有内容。

首先,一个数据绑定表达式是这样的:

<%# EXPRESSION %>

基本上,为 Web 控件属性使用数据绑定表达式的规则是表达式必须是属性中的唯一内容:

<asp:HyperLink ID="lb" runat="server" 
  Text='<%# EXPRESSION %>'
  NavigateUrl='<%# EXPRESSION %>' />

所以你的第一个属性Text 是正确的。但是您的第二个属性 NavigateUrl 不正确。因为您将ViewItem.aspx?id= 作为属性的值,所以将+ '&lt;%# Eval("Key.Id") %&gt;' 留在任何属性之外但在控制标记内。

下面是正确的语法:

<asp:HyperLink ID="lb" runat="server" 
  Text='<%# Eval("Key.Id") %>' 
  NavigateUrl='<%# Eval("Key.Id", "ViewItem.aspx?id={0}") %>'/>

请注意,我们使用格式字符串作为Eval() 的第二个参数。这等效于以下更明确的语法:

<asp:HyperLink ID="lb" runat="server" 
  Text='<%# Eval("Key.Id") %>' 
  NavigateUrl='<%# String.Format("ViewItem.aspx?id={0}", Eval("Key.Id")) %>'/>

【讨论】:

    【解决方案2】:

    当我在网格视图中有这样的东西时,我会这样做:

    <img src='<%# GetDisImageLink(Eval("Disabilities").ToString()) %>' 
       alt="Disabilities" />
    

    [CS 代码隐藏]

    public string GetDisImageLink(string dis)
    {
        return "../../Content/Images/CardContactInfo/" + 
           (dis.Trim() == "Y" ? "DIS.png" : "Blank.png");
    }
    

    【讨论】:

      【解决方案3】:

      试试这个:

      <asp:HyperLink ID="lb" runat="server" Text='<%#Eval("Key.Id") %>' NavigateUrl='ViewItem.aspx?id=<%# Eval("Key.Id") %>'/>
      

      你不需要连接

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-01
        • 1970-01-01
        • 2022-01-20
        • 2023-04-02
        • 1970-01-01
        • 2017-01-16
        • 2018-01-09
        • 2021-05-28
        相关资源
        最近更新 更多