【问题标题】:GridView Hyperlink with ID from database带有数据库 ID 的 GridView 超链接
【发布时间】:2014-03-23 22:40:44
【问题描述】:

我有和 oBjectDataSource,它为我的网格视图获取我的信息。

它完美地显示了所有信息,自动生成:

<asp:BoundField DataField="Name" ItemStyle-Width="250px" HeaderText="Name" SortExpression="Name">
            <ItemStyle Width="250px"></ItemStyle>
        </asp:BoundField>

但我希望在 navigateURL 中有一个超链接,其中字段“名称”作为文本,字段“用户 ID”作为参数:

 <asp:TemplateField>
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink2" NavigateUrl="~/Test.asp?id='<%# Eval("userID") %>'" runat="server"><%# Eval("Name") %></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>

这里出错了……

怎么了?

【问题讨论】:

  • 我有时会为此使用链接按钮,并使用 Response.redirect 并在后面的代码中添加 url 参数。我发现它更容易,它给你更多的控制权。

标签: asp.net gridview


【解决方案1】:

试试这个:

<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# "~/Test.asp?id="+Eval("userID") %>' Text='<%# Eval("Name") %>'></asp:HyperLink>

【讨论】:

    【解决方案2】:

    您也可以通过这种方式实现 - 更简单:

    <asp:HyperlinkField DataTextField="Name"
            DataNavigateUrlFormatString="~/Test.asp?id={0}"      
            DataNavigateUrlFields="userID"  
            />
    

    【讨论】:

      【解决方案3】:

      试试这个。似乎问题在于在 Eval(“userID”) 中使用双引号与在 NavigateUrl 中打开双引号发生冲突

      <asp:HyperLink ID="HyperLink2" NavigateUrl='~/Test.asp?id=<%# Eval("userID") %>' runat="server"><%# Eval("Name") %></asp:HyperLink>
      

      【讨论】:

        【解决方案4】:

        在您的网格视图中添加此字段

        在此示例中,Id = ContentId

        <asp:HyperLinkField DataNavigateUrlFields="ContentId" DataNavigateUrlFormatString="EditContent.aspx?ContentId={0}" Text="Edit" HeaderText="Edit" />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多