asp.net_动态创建页面跳转控件(HyperLink)

2023-10-19 15:20

本文主要是介绍asp.net_动态创建页面跳转控件(HyperLink),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天课堂上做了一个随堂练习,写个博客做记录。

动态创建页面跳转控件HyperLink

一、先来说一下页面跳转的几个方法:

1.a标签超链接
2.Response.Redirect重定向
3.Server.Transfer,也是重定向

2与3的区别(老师笔记)

Response.RedirectServer.Transfer
是否转向其他站点
是否可带QueryString参数
执行效率相对低相对高
是否存在第三方控件的冲突BUG
浏览器是否显示目标地址

特别注意:
1.Server.Transfer方法只能是本站内的URL跳转,不能跳转到其他的网站
2.Server.Transfer方法存在一些已知的和第三方控件的冲突
3.Server.Transfer隐藏目标地址(目标网页也就无法获取正确的来路)

二、在文本框输入网址名与网址并创建控件,点击控件实现页面跳转。(随堂练习)

在这里插入图片描述

由图可知,输入名称与网址,点击创建按钮,可以生成一个超链接用来实现页面跳转(第三个文本框起测试作用,下文会说到)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

大体的题目效果就是这样,现在来看代码:

前端:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test01.aspx.cs" Inherits="test01" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title>
</head>
<body><form id="form1" runat="server"><div>名称:<asp:TextBox ID="TextBox1" runat="server" Width="178px"></asp:TextBox><br /><br />网址:<asp:TextBox ID="TextBox2" runat="server" Width="177px"></asp:TextBox><br /><br /><asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="创建" /><br /><br /><asp:TextBox ID="TextBox3" runat="server" Width="182px"></asp:TextBox><br /><br /><asp:Panel ID="Panel1" runat="server"></asp:Panel></div></form>
</body>
</html>

后端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;public partial class test01 : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){//保留上一个创建的控件if (TextBox3.Text != ""){string[] str = TextBox3.Text.Split('$');foreach (string s in str){if (s.Length > 0){addlink(s);}}}}protected void addlink(string nameurl){string[] str = nameurl.Replace("$", "").Split('#'); //去除$与#HyperLink hl = new HyperLink();hl.Text = str[0]; // str[0]代表 #左边hl.NavigateUrl = str[1]; // #右边Panel1.Controls.Add(hl);}protected void Button1_Click(object sender, EventArgs e){if (TextBox1.Text != "" && TextBox2.Text != ""){string str = TextBox1.Text + "#" + TextBox2.Text + "$";addlink(str);TextBox3.Text += str;}TextBox1.Text = TextBox2.Text = ""; //清空文本框}
}

基本思路:

点击按钮之后,触发事件,当两个文本框里的值不为空时,定义一个字符串,把名称与网址封装成这样:

百度#https://www.baidu.com$ // #与$为分隔符

然后写一个添加超链接控件的方法addlink(),接收封装后的字符串,对它进行拆分,用一个一维数组接收:

string[] str = nameurl.Replace(“$”, “”).Split(‘#’);

nameurl为方法参数名,不用过多在意,到这步之后,原本封装好的字符串就变成了:

百度 //第一个字符串
https://www.baidu.com //第二个字符串

随后创建HyperLink对象,设置Text的值为第一个字符串(str[0]),设置NavigateUrl的值为第二个字符串(str[1]),最后把这个对象添加到Panel控件里,就实现了创建超链接。

TextBox3文本框(即第三行文本框)的作用是测试字符串有没有分隔成功并可视化,可以把它设置成不可见。还有一个功能,下面会讲到。

<asp:TextBox ID="TextBox3" runat="server" Width="182px" Visible="false"></asp:TextBox>

PageLoad方法里的那段代码,作用是把创建过的超链接保留下来,因为每次点击按钮触发事件的时候,页面会重新加载,原本创建的超链接会消失

具体怎么保留呢?

这里就讲到了TextBox3的另一个作用,保留上一个超链接的封装字符串

假设我们已经创建了一个百度超链接,要创建第二个淘宝的超链接,名称与网址都填写好了,点击创建按钮,程序执行顺序:先执行PageLoad方法,再执行Button_Click方法,此时,PageLoad里的方法把TextBox3里的文本内容提取出来,做类似的拆分操作,并添加到Panel控件,这样,上一个创建的超链接就不会消失,会再创建一遍。

至于为什么先执行PageLoad,可以参考我之前的博客:

asp.net_PageLoad加载页面简单理解与应用

这篇关于asp.net_动态创建页面跳转控件(HyperLink)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/240644

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Python结合Free Spire.PDF for Python实现PDF页面旋转

《Python结合FreeSpire.PDFforPython实现PDF页面旋转》在日常办公或文档处理中,我们经常会遇到PDF页面方向错误的问题,本文将分享如何用Python结合FreeSpir... 目录基础实现:单页PDF精准旋转完整代码代码解析进阶操作:覆盖多场景旋转需求1. 旋转指定角度(90/27

使用Python实现在PDF中添加、导入、复制、移动与删除页面

《使用Python实现在PDF中添加、导入、复制、移动与删除页面》在日常办公和自动化任务中,我们经常需要对PDF文件进行页面级的编辑,使用Python,你可以轻松实现这些操作,而无需依赖AdobeAc... 目录1. 向 PDF 添加空白页2. 从另一个 PDF 导入页面3. 删除 PDF 中的页面4. 在

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1