C# gridview中的超链接不工作

C# gridview中的超链接不工作,c#,asp.net,sql,gridview,hyperlink,C#,Asp.net,Sql,Gridview,Hyperlink,我一直在尝试在我的gridview中创建超链接,但我似乎做不到。主要问题是,只需点击超链接,什么也做不到。完全没有。我使用超链接的原因是,当记录显示在我的gridview中时,超链接将允许用户重定向到我的编辑页面以编辑所选记录。My gridview从对象数据源获取数据,然后调用数据库中的存储过程以执行查询字符串TxnID是查询字符串中涉及的许多列之一 超链接代码: <asp:TemplateField HeaderText=""> <ItemT

我一直在尝试在我的gridview中创建超链接,但我似乎做不到。主要问题是,只需点击超链接,什么也做不到。完全没有。我使用超链接的原因是,当记录显示在我的gridview中时,超链接将允许用户重定向到我的编辑页面以编辑所选记录。My gridview从
对象数据源
获取数据,然后调用数据库中的存储过程以执行查询字符串
TxnID
是查询字符串中涉及的许多列之一

超链接代码:

<asp:TemplateField HeaderText="">
                <ItemTemplate>
                    <asp:HyperLink ID="hlEditTxn" NavigateUrl='<% Eval("TxnID", "~/FXTxnEdit.aspx?TxnID={0}") %>'
                        Text="Edit" runat="server" ></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
出于某种原因,这是行不通的。我尝试在gridview中插入一个显示TxnID的
标签
列,只是为了确保ObjectDataSource是否获得TxnID:

<asp:TemplateField HeaderText="TxnID">
                <ItemTemplate>
                    <asp:Label ID="lblTxnID" runat="server" Text='<%# Eval("TxnID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

它确实得到了TxnID,并且在gridview中显示了TxnID,这很好


对可能出现的问题有什么看法吗?或者还需要做什么或可以做什么才能使超链接正常工作?

将链接声明和绑定表达式更改为以下内容:

<asp:HyperLink ID="hlEditTxn" NavigateUrl='<%# "~/FXTxnEdit.aspx?TxnID=" + Eval("TxnID") %>'
                    Text="Edit" runat="server" ></asp:HyperLink>

给它一个机会,让我知道它去了

利奥,你为什么不试试这个

<asp:HyperLink ID="hlEditTxn" NavigateUrl='<%# string.Format("~/FXTxnEdit.aspx?TxnID={0}",Eval("TxnID"))%>'
                    Text="Edit" runat="server" ></asp:HyperLink>

哇。经过5个多小时的努力,终于解决了我的大问题

如果你仔细看看我问题中的超链接声明:

<asp:TemplateField HeaderText="">
            <ItemTemplate>
                <asp:HyperLink ID="hlEditTxn" NavigateUrl='<% Eval("TxnID", "~/FXTxnEdit.aspx?TxnID={0}") %>'
                    Text="Edit" runat="server" ></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>

您将看到在
Eval
之前没有数字符号/哈希(
#
)。我完全错过了那个。一旦我在代码中添加了这个小字符

NavigateUrl=''

现在一切都很奇妙。编码是一门学问。有时会让你看起来非常愚蠢,哈哈

顺便说一句,你的解决方案很有效,我试过了


附带问题,
#
的作用是什么?什么意思?

你说的“超链接不起作用”是什么意思?链接根本没有出现吗?它们是不可点击的吗?他们没有重定向到页面FXTxnEdit.aspx吗?单击超链接根本没有任何作用解决我自己的问题后,我尝试了你的代码。它也有效
<asp:TemplateField HeaderText="">
            <ItemTemplate>
                <asp:HyperLink ID="hlEditTxn" NavigateUrl='<% Eval("TxnID", "~/FXTxnEdit.aspx?TxnID={0}") %>'
                    Text="Edit" runat="server" ></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>