Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在.NET控件上设置可见属性_Asp.net_Dynamic - Fatal编程技术网

Asp.net 在.NET控件上设置可见属性

Asp.net 在.NET控件上设置可见属性,asp.net,dynamic,Asp.net,Dynamic,这里是.NET新手 我有一个有很多章节的页面。我想创建另一个页面,使其具有指向此页面的超链接,以及指向其中各部分的超链接 如果用户单击了主页链接,我希望所有部分都可见,但如果用户单击了部分超链接,则仅显示用户请求的部分 如何从上一页的链接设置未请求控件(在asp:Panel中)的visible属性,使它们在请求其他节时不会显示在页面上 许多tia mcalex您可以检查请求.ServerVariables[“HTTP\u REFERER”] 但是,如果用户刷新页面,这将更改。您有以下选项 将每个

这里是.NET新手

我有一个有很多章节的页面。我想创建另一个页面,使其具有指向此页面的超链接,以及指向其中各部分的超链接

如果用户单击了主页链接,我希望所有部分都可见,但如果用户单击了部分超链接,则仅显示用户请求的部分

如何从上一页的链接设置未请求控件(在asp:Panel中)的visible属性,使它们在请求其他节时不会显示在页面上

许多tia


mcalex

您可以检查
请求.ServerVariables[“HTTP\u REFERER”]


但是,如果用户刷新页面,这将更改。

您有以下选项

  • 将每个节控件包装在asp.net面板服务器控件中
  • 当您单击主页面上的超链接时,将面板作为参数(如linkbuton上的参数)传递以通过querystring或session启用

    Response.Redirect("~/myPage.aspx?secId=info")
    
  • 然后在重定向页面上设置所有面板
    Visibility=false
    insidepageload检查querystring值并将面板的Visibility属性设置为true或false

     if(!Page.IsPostBack)
     {
          string panelToEnable= Request.QueryString["secId"];
          switch(panelToEnable)
          {
              case("info"):
                         panelInfo.Visible=true; 
                         break;
              case("details");
                         panelDetails.Visible=true;
                         break;
              default:
                         panelMaster.Visible=true; 
                         break;
          }
     }
    

  • 或者,您可以将部分链接放在重定向页面内,并进一步简化内容(删除查询字符串等)。

    您有两种方法来解决此问题:

  • 使用查询字符串:在查询字符串上传递不同的参数值。在目标页面/控件中,选中查询字符串,并根据需要使节可见/不可见

  • 使用会话数据:使用特定键存储模式。单击其他页面的链接按钮时,使用回调功能(在CSharp中)设置会话数据并重定向到目标页面。此页面将检查存储在会话状态中的数据,并使节可见/不可见

  • 利与弊:

    • 第一种解决方案可用于纯HTML链接,但参数显示在查询字符串中,因此用户可以将其更改为显示其他部分

    • 第二种解决方案不能用于纯HTML链接,但它可以防止用户在会话状态下更改值。所以它更安全


    这种方法是有道理的,但我不是一个喜欢上网的人(哈哈,我来自java)。如果我的主页链接是asp:Hyperlink,如何访问响应?超链接标记似乎没有请求或响应属性。mcalex您可以使用服务器端的linkbutton控件并双击它来编写响应。重定向,或者您可以在标签上硬编码,比如@mcalex,很高兴它对您有所帮助。若你们觉得我的帖子很有用,你们也可以投票,若你们有答案,请把它标记为答案。