Html 锚点在中继器内工作不正常

Html 锚点在中继器内工作不正常,html,asp.net,Html,Asp.net,我有一个中继器,里面有一个锚,但不幸的是,当用户点击图像按钮时,锚没有效果。为了进行测试,我在中继器外部添加了另一个锚点,它工作正常,但中继器内部的锚点不工作。 如有任何评论,我们将不胜感激 <asp:Repeater ID="rptrPlatforms" runat="server" OnItemDataBound="rptrPlatforms_ItemDataBound" OnItemCommand="rptrPlatforms_ItemCommand"> <Ite

我有一个中继器,里面有一个锚,但不幸的是,当用户点击图像按钮时,锚没有效果。为了进行测试,我在中继器外部添加了另一个锚点,它工作正常,但中继器内部的锚点不工作。 如有任何评论,我们将不胜感激

<asp:Repeater ID="rptrPlatforms" runat="server" OnItemDataBound="rptrPlatforms_ItemDataBound" OnItemCommand="rptrPlatforms_ItemCommand">
    <ItemTemplate>
        <a id="AnchorToBox"  href="#BoxSelectionPos" runat="server" style="text-decoration: none">
            <asp:ImageButton ID="imgPlatform" alt="" Style="" runat="server" OnCommand="Platform_Click" CommandName="PlatformClick" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"PlatformLanguageID")+","+DataBinder.Eval(Container.DataItem,"PlatformID") %>' />
        </a>
    </ItemTemplate>
</asp:Repeater>

protected void rptrBoxes_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == (ListItemType.Item) || e.Item.ItemType == (ListItemType.AlternatingItem))
    {
        Image img = (Image)e.Item.FindControl("imgSetTopBox");
        img.ImageUrl = "/Pages/Shop-ProductSelection/images/" + drv.Row["Image1"].ToString();
    }
}

受保护的void rpterboxes_ItemDataBound(对象发送方、RepeaterItemEventArgs e)
{
如果(e.Item.ItemType==(ListItemType.Item)| e.Item.ItemType==(ListItemType.AlternatingItem))
{
Image img=(Image)e.Item.FindControl(“imgSetTopBox”);
img.ImageUrl=“/Pages/Shop ProductSelection/images/”+drv.Row[“Image1”].ToString();
}
}

为什么需要锚定标记,为什么不将ImageButton与OnClientClick一起使用

 <asp:ImageButton  FID="imgPlatform" alt="" Style="" runat="server" OnCommand="Platform_Click" CommandName="PlatformClick" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"PlatformLanguageID")+","+DataBinder.Eval(Container.DataItem,"PlatformID") %>' 
                    OnClientClick="MyPage.aspx=#BoxSelectionPos" />

解决问题的所有努力都是徒劳的,因为即使使用javascript中的scrollto命令,页面也会滚动到以前的位置。最后,我通过在代码隐藏中使用以下源代码解决了问题:

protected void Platform_Click(object sender, CommandEventArgs e)
{
   if (e.CommandName == "PlatformClick")
   {
       ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#BoxSelectionPos';", true);
   }
}

检查生成的html,看看有什么不同…谢谢Rick,这是一个很好的快捷方式,但不幸的是,它在我的源代码中不起作用。我对OnCommand=“Platform\u Click”表示怀疑,并对其进行了评论,以确定这可能是原因,但它仍然无法与此配合使用。