超链接有问题

本文关键字:有问题 超链接 | 更新日期: 2023-09-27 18:02:35

我在数据列表中放了一个超链接…

 <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server">'<%# Eval("ThreadTitle") %>'</asp:HyperLink>
                <br />
                <br />
            </ItemTemplate>

我想让它能够被按下,以便触发数据事件并将我转移到另一个页面:

    protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Server.Transfer("AnswerQuestion.aspx?x=" + DataList1.DataKeyField + "&question=" + DataList1.SelectedValue + "&time=" + DateTime.Now);
}

不幸的是,链接似乎被禁用了,我不能按下它来触发DataList Selected事件。

如何激活超链接

超链接有问题

如果你想触发一个选定的事件,使用LinkButton而不是超链接。

 <asp:DataList ID="DataList1" runat="server" 
        onselectedindexchanged="DataList1_SelectedIndexChanged">
    <ItemTemplate>
    <asp:LinkButton ID="sjdj" runat="server" CommandName="Select">
        <%# Container.DataItem %></asp:LinkButton>
    </ItemTemplate>
    </asp:DataList>

后面的代码中有

  protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Server.Transfer("~/jjtestjj.aspx?" + DataList1.DataKeyField);
        }

为什么你不使用超链接作为超链接?

您可以使用OnItemDataBound(或同等)事件设置NavigationURLText

此代码适用于asp:Repeater:

protected void Row_DataItem(object row, RepeaterItemEventArgs args)
{
    if (args.Item.ItemType == ListItemType.AlternatingItem || args.Item.ItemType == ListItemType.Item)
    {
        var item = (DataItemPOCO)args.Item.DataItem;
        var link = (HyperLink)args.Item.FindControl("HyperLink1");
        link.Text = item.LinkText;
        link.NavigateUrl = item.URL;
    }
}