无法将用户重定向到带有超链接的另一个页面
本文关键字:超链接 另一个 用户 重定向 | 更新日期: 2023-09-27 18:32:15
我要求使用以下超链接控制将用户重定向 youtube.com
我想使用以下代码根据下拉列表所选项目动态更改 URL。
protected void ddlPType_SelectedIndexChanged(object sender, EventArgs e)
{
int x = ddlPType.SelectedIndex;
if (x == 0)
{
activateCerts.NavigateUrl = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
activateCerts.Text = "activateCerts";
activateCerts.Target = "_blank";
//activateCerts.HRef = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
}
else if (x == 1)
{
//activateCerts.Target = "_blank";
//activateCerts.HRef = "http://www.youtube.com/watch?v=hk3hxUuwg0w";
activateCerts.Text = "activateCerts";
activateCerts.NavigateUrl = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
}
这是一个ASPX代码
<asp:Label runat="server" style="padding-left:23rem;" Text="pls watch this video on How to"></asp:Label>
<asp:HyperLink ID="activateCerts" runat="server"></asp:HyperLink>
但是当我点击链接时,我无法打开YouTube视频
这通过为 dropdpwn ddlPType
设置AutoPostBack=true
来为我工作:
<form id="form1" runat="server">
<div>
<asp:DropDownList runat="server" ID="ddlPType" AutoPostBack="true" OnSelectedIndexChanged="ddlPType_SelectedIndexChanged">
<asp:ListItem Text="Option 1" Selected="True" />
<asp:ListItem Text="Option 2" />
</asp:DropDownList>
<br />
<asp:Label ID="Label1" runat="server" style="padding-left:23rem;" Text="pls watch this video on How to"></asp:Label>
<asp:HyperLink ID="activateCerts" runat="server"></asp:HyperLink>
</div>
</form>
.cs页 :
protected void ddlPType_SelectedIndexChanged(object sender, EventArgs e)
{
int x = ddlPType.SelectedIndex;
if (x == 0)
{
activateCerts.NavigateUrl = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
activateCerts.Text = "activateCerts";
activateCerts.Target = "_blank";
//activateCerts.HRef = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
}
else if (x == 1)
{
//activateCerts.Target = "_blank";
//activateCerts.HRef = "http://www.youtube.com/watch?v=hk3hxUuwg0w";
activateCerts.Text = "activateCerts";
activateCerts.NavigateUrl = "http://www.youtube.com/watch?v=3AYoipyqOkQ";
}
}
对于名为 ddlPType 的下拉列表,您需要确保其 AutoPostBack 为真。您可以在属性面板中设置它,也可以使用以下代码进行设置:
<asp:DropDownList runat="server" ID="ddlPType" AutoPostBack="true" OnSelectedIndexChanged="ddlPType_SelectedIndexChanged">
通过这一步,您应该实现您的目标,但有时这并不那么简单。您可能需要确保将数据绑定(如果有)放入
if (!Page.IsPostBack)Page_Load。
此外,下拉列表只会在数据更改时发送数据。也就是说,如果您获得共享相同值的两个选项,下拉列表可能不会响应您。例如:
if(!IsPostBack)
{
for(int i=0;i<10;i++)this.DropDownList1.Items.Add(new ListItem(i.ToString(),"same_value"));
}
这是最奇怪的情况:您已经完成了上述所有操作,但仍然不起作用。有时它发生在IE8中。如果您使用 window.showModalDialog() 显示 DropDownList,提交将引导您进入一个新页面。您需要在头标签之间添加:
<base target=_self></base>
希望我的经验会有所帮助。