开发者

Problem with a hyperlink

I put a hyperlink inside a datalist..

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

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

I want it to enable it to be pressed so that the datalist event will be triggered and transfer me to another page:

    protected void DataList1_SelectedIndexCh开发者_如何学运维anged(object sender, EventArgs e)
{
    Server.Transfer("AnswerQuestion.aspx?x=" + DataList1.DataKeyField + "&question=" + DataList1.SelectedValue + "&time=" + DateTime.Now);
}

Unfortunately, the link seems to be disabled and I cant press on it to trigger the DataList Selected event..

How can I make the hyperlink active ?


If you want to trigger a selecteditemchaned event use a LinkButton instead of hyperlink.

 <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>

In the code behind have

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


why arent you using the Hyperlink as a hyperlink?

You can set the NavigationURL and Text using the OnItemDataBound (or equivalent) event.

this code works with an 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;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜