javascript - 根据单击的链接显示不同的选项卡

标签 javascript c# jquery ajaxcontroltoolkit

场景

我想在不同页面上单击不同链接时显示 ajax 选项卡容器控件的特定选项卡。

澄清一下:链接位于 page1.aspx 上,ajax 选项卡容器位于 page2.aspx 上。

所有链接仅重定向到 page2.aspx。

但我需要根据上一页(page1.aspx)上点击的不同链接来显示不同的选项卡(在page2.aspx上)”。

我在寻找什么

我想我可以按照以下伪代码行做一些事情:

LinkButton lnk1 = (LinkButton)PreviousPage.FindControl("btnLink1");
if (lnk1.Click)
{
  TabContainer1.ActiveTab = tab1;
}

想法是,如果单击某个链接,则应显示特定选项卡。

我会将其放入 page2.aspx 的 PageLoad 事件中。

如何实现服务器端(c#)?或者我是否需要一个客户端(Javascript)方法?

我尝试过的

我已尝试按照答案之一的建议使用 session 变量,但点击事件未触发。

以下是我如何在单击每个链接按钮时将变量存储在 page1.aspx 上。

 protected void editPosition_Click(object sender, EventArgs e)
    {
        Session["LinkSelection"] = "lnkPosition";
    }

 protected void editRoom_Click(object sender, EventArgs e)
    {
        Session["LinkSelection"] = "lnkRoom";
    }

然后在 PageLoad 上我对 page2.aspx 进行检查

 if (Session["LinkSelection"].ToString() == "lnkPosition")
   {
            TabContainer1.ActiveTab = PositionsTab;
   }

 if (Session["LinkSelection"].ToString() == "lnkRoom")
   {
            TabContainer1.ActiveTab = RoomsTab;
   }

链接的标记如下:

<asp:LinkButton ID="editPosition" runat="server" OnClick="editPosition_Click" 
     Text="Position" ClientIDMode="Static" ></asp:LinkButton>
<asp:LinkButton ID="editRoom" runat="server" Text="Room" OnClick="editRoom_Click" 
     ClientIDMode="Static" ></asp:LinkButton>

最终编辑

我通过使用查询字符串参数而不是 session 变量解决了我的问题。

最佳答案

我想,你必须尝试一下。

在 page1.aspx 中,当单击链接时,您必须在变量中设置链接选择值

protected void lnkUser_Click(object sender, EventArgs e)
{
    Session["LinkSelection"] = "lnkUser";
} 

protected void lnkCustomer_Click(object sender, EventArgs e)
{
    Session["LinkSelection"] = "lnkCustomer";
}

位于 page2.aspx,位于 Page_Load事件,您必须检查 session 变量值,然后基于该值,您必须在 Ajax 选项卡中显示 true/false

if (Session["LinkSelection"] == "lnkUser")
 {
    //put your User tab Active/Enabled logic here 
 }
else if (Session["LinkSelection"] == "lnkCustomer")
 {
    //put your Customer tab Active/Enabled logic here
 }

除了使用 If else,您还可以使用 Switch Case。这是示例代码。 如果您不想使用 session 变量,则使用 page2.aspx 传递查询字符串中的值,例如 Response.Redirect("page2.aspx?LinkSelection=lnkUser") 。您还可以将加密的查询字符串发送到 page2,您可以在其中解密并处理

关于javascript - 根据单击的链接显示不同的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994934/

相关文章:

javascript - TypeError : node. setAttribute 不是函数

javascript - 如何在 Electron 中访问 <webview> 的 DOM?

javascript - jQuery + CSS : How to detect the first "move out" of cursor out of an element?

javascript - 什么是 John Resig 提到的动态代码评估

javascript - 图表.js 2.0 : How to change title of tooltip

javascript - 为什么使用脚本加载到 div 中的 html 不调用 javascript?

javascript - 将具有 POST 的 PHP 变量发送到另一个 PHP 文件

c# - 复杂的正则表达式验证器

javascript - 通过 Ajax 将对象数组 (Javascript) 转换为 C#

c# - 在 TeamCity 构建结果中显示 `dnu publish` 异常