超链接问题

时间:2011-07-13 11:01:33

标签: c# asp.net hyperlink

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

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

                <br />
                <br />
            </ItemTemplate>

我希望它能够按下它以便触发datalist事件并将我转移到另一页:

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

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

如何激活超链接?

2 个答案:

答案 0 :(得分:1)

如果要触发selecteditemchaned事件,请使用LinkBut​​ton而不是超链接。

 <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);
        }

答案 1 :(得分:0)

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

您可以使用NavigationURL(或同等)事件设置TextOnItemDataBound

此代码适用于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;
    }
}