关于 c#:gridview 中的超链接不起作用

hyperlink in gridview not working

我一直试图在我的 gridview 中创建超链接,但我似乎做不到。主要问题是简单地点击超链接没有任何作用。绝对没有。我的超链接的原因是当记录显示??在我的网格视图中时,超链接将允许用户重定向到我的编辑页面以编辑选定的记录。我的 gridview 从 ObjectDataSource 获取数据,然后调用我数据库中的存储过程来执行查询字符串。 TxnID 是查询字符串中涉及的众多列之一。

超链接代码:

1
2
3
4
5
                <ItemTemplate>
                    '
                        Text="Edit" runat="server"></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>

编辑页面代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public partial class FXTxnEdit : System.Web.UI.Page
{
    TransactionHandler txnHnd = null;
    MainFunctions mf = null;
    int TransactionID = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {

            string id = Request.QueryString["TxnID"] as string;

            if (id == null)
            {
                Response.Redirect("Default.aspx");
            }

由于某种原因,这不起作用。我尝试在显示 TxnID 的网格视图中插入 Label 列,只是为了确保 ObjectDataSource 确实获得了 TxnID:

1
2
3
4
                <ItemTemplate>
                    '></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

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

有什么想法可能是错的吗?或者还需要做什么或可以做什么才能使超链接正常工作?


哇。经过 5 个多小时 XD

设法解决了我的一个非常大的问题

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

1
2
3
4
5
            <ItemTemplate>
                '
                    Text="Edit" runat="server"></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>

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

NavigateUrl='<%# Eval("TxnID","~/FXTxnEdit.aspx?TxnID={0}") %>'

现在一切都很神奇。编码是一个蜜蜂。有时会让你看起来非常愚蠢 LOL

附言@Leo - 顺便说一句,你的解决方案有效,我试过了。

另外一个问题,# 是干什么用的?这是什么意思?


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

1
2
'
                    Text="Edit" runat="server"></asp:HyperLink>

试一试,让我知道它会成功

狮子座


为什么不试试这个

1
2
'
                    Text="Edit" runat="server"></asp:HyperLink>