Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >asp.net动态增加服务器端控件并提交表单

asp.net动态增加服务器端控件并提交表单

作者头像
纯粹是糖
发布于 2018-03-14 07:02:53
发布于 2018-03-14 07:02:53
1.5K00
代码可运行
举报
文章被收录于专栏:kwcodekwcode
运行总次数:0
代码可运行

为什么要用原生的呢?

1、目的 原生出现浏览器兼容性问题 极少,不用测试多浏览兼容性 。需要考虑到市面上的其他垃圾浏览器。 

2、性能不好 如果不考虑第一条 你可以换一种方式

直接上代码

.aspx页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>DEMO</title>
</head>
<body>
    <form id="form1" runat="server">
        
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="动态控件"></asp:Label>
        <asp:PlaceHolder ID="phBody" runat="server"></asp:PlaceHolder>

        <br />
        <br />
        <br />
        <br />
        <br />
        <asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="加三个动态控件" />
        <asp:Button ID="btnDelLast" runat="server" OnClick="btnDelLast_Click" Text="删除后面三个" />
        <br />
        <br />
        <br />
        <br />
        <asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="提交保存" />
        <br />
        <br />
        <asp:Label runat="server" ID="lbMsg" ForeColor="Red"></asp:Label>
    </form>
</body>
</html>

后台.cs代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  protected void Page_Load(object sender, EventArgs e)
        {
            #region 初始化控件 

            if (ViewState["AddedControl"] == null)
            {
                ViewState["AddedControl"] = 1;
                CreateControl();
            }
            else
            {
                int cout = Convert.ToInt32(ViewState["AddedControl"]);
                for (int i = 0; i < cout; i++)
                {
                    CreateControl();
                }
            }
            #endregion

            if (!IsPostBack)
            {

            }
        }
        /// <summary>
        /// 给容器phBody创建动态控件
        /// </summary>
        /// <param name="index"></param>
        public void CreateControl()
        {
            Panel plBody = new Panel();
            TextBox txt = new TextBox();
            txt.Text = "";
            plBody.Controls.Add(txt);

            TextBox txt2 = new TextBox();
            txt2.Text = "";
            plBody.Controls.Add(txt2);

            TextBox txt3 = new TextBox();
            txt3.Text = "";
            plBody.Controls.Add(txt3);
              
            phBody.Controls.Add(plBody);
        }
        //获取动态添加的控件值
        protected void btnSave_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int i = 0; i < phBody.Controls.Count; i++)
            {
                Control ctrl = phBody.Controls[i];

                for (int j = 0; j < ctrl.Controls.Count; j++)
                {
                    if (j <= 3)
                    {
                        TextBox txt = ctrl.Controls[j] as TextBox;
                        if (txt != null)
                        {
                            sb.Append(txt.Text);
                        }
                    }

                }
            }
            lbMsg.Text = sb.ToString();
        }
        //加三行
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            if (ViewState["AddedControl"] == null)
            {
                ViewState["AddedControl"] = 1;
            }
            else
            {
                int cout = Convert.ToInt32(ViewState["AddedControl"]);
                ViewState["AddedControl"] = cout + 1;
            }
            CreateControl();
        }
        //删除最后一行动态添加的控件
        protected void btnDelLast_Click(object sender, EventArgs e)
        {
            int index = phBody.Controls.Count - 1;
            phBody.Controls.RemoveAt(index);
            if (ViewState["AddedControl"] == null)
            {
                ViewState["AddedControl"] = 0;
            }
            else
            {
                int cout = Convert.ToInt32(ViewState["AddedControl"]);
                ViewState["AddedControl"] = cout - 1;
            }
        }

预览效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 14.04上保护Redis安装
但是,请记住,Redis旨在供受信任环境中的受信任客户端使用,并且没有自己的强大安全功能。为了突出显示这一点,可以看看这里来自Redis官方网站的引用:
挺问中原
2018/10/19
8810
Redis匿名访问漏洞
Redis匿名访问漏洞也被称为 Redis未授权访问漏洞。是由于 Redis服务本身的特性及其运维不当造成的
安恒网络空间安全讲武堂
2019/09/29
2.5K1
Redis匿名访问漏洞
Redis介绍及CentOS 7安装redis 4.0详细步骤
Redis是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。由于Redis采用运行在内存中的数据集工作方式,其性能卓越,能支持超过100K+每秒的读写频率。它支持多种类型的数据结构,如字符串(strings), 散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询和地理空间(geospatial)索引半径查询。Redis内置了复制(replication), LUA脚本(Lua scripting),LRU淘汰机制,事务实现(transactions),发布订阅(publish/subscribe)和不同级别的磁盘持久化(persistence)等能力, 并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。
SEian.G
2021/03/03
1K0
Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 警惕 前一篇文章《Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作》主要是一个简单的介绍,针对redis入门和安装及命令行简单的使用,虽然已经正常启动和使用,但是由于所有的设置都没有做任何改动,使用的是默认设置,默认端口、默认免密......其实目前状态下的redis相当于是一个裸奔的
程序员十三
2018/03/15
6530
Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
Redis 未授权访问漏洞利用总结
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
用户8478399
2022/09/22
3.4K0
Redis 未授权访问漏洞利用总结
Redis服务器被攻击后该如何安全加固
在特定条件下,如果 Redis 以 root 身份运行,黑客可以给 root 账号写入 SSH 公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据。一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的 Redis 运行环境以及 Linux 主机带来安全风险,如删除、泄露或加密重要数据,引发勒索事件等。
搜云库技术团队
2019/10/18
3.2K0
redis未授权访问漏洞的三种场景复现以及加固思路
redis未授权访问漏洞是一个由于redis服务器版本较低,并未设置登陆密码所导致的漏洞,攻击者可以直接利用redis服务器的ip地址和端口完成对redis服务器的远程登陆,对目标服务器完成后续的控制和利用。
FB客服
2023/02/09
1.8K0
redis未授权访问漏洞的三种场景复现以及加固思路
Redis安全基线检查
描述 使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的 加固建议 使用root切换到redis用户启动服务:
咻一咻
2020/05/29
2.2K0
1.Redis数据库基础入门介绍与安装
描述: 在一个中大的应用网站中有可能有海量用户同时访问某也查询业务时从而出现高并发的相关问题,其罪魁祸首就是关系型数据库。因为其性能瓶颈(磁盘IO性能低下)和扩展瓶颈(数据关系复杂,扩展性差,不便于大规模集群)导致上述情况, 那除开从代码层面优化外,我们可以采用以下思路解决:
全栈工程师修炼指南
2022/09/28
9580
1.Redis数据库基础入门介绍与安装
给你的数据库加一道缓存:Redis入门教程
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。 本教程将会教你如何在Ubuntu 18.04 上安装、配置Redis,并且给Redis添加防护。
苏子晨
2018/07/30
2.8K0
Redis的删库与跑路
Redis作为最流行的内存数据库之一,几乎每个公司都对其有所依赖.而大家都会注意的问题是”mysql库的删库与跑路”,很容易忽略redis这个依赖性非常高的中间件,一旦出问题,势必对整个业务甚至整个公司有影响.
一个架构师
2022/06/20
1.1K0
Linux环境下部署redis教程详解
安装命令:yum -y install gcc automake autoconf libtool make
PHP开发工程师
2022/04/22
7430
Linux环境下部署redis教程详解
Redis未授权访问漏洞复现
Redis在默认情况下,会绑定在0.0.0.0:6379。如果没有采取相关的安全策略,例如添加防火墙规则、避免其他飞信人来源IP访问等,这样会使Redis 服务完全暴漏在公网上。如果在没有设置密码的情况下,会导致任意用户在访问目标服务器时,在未授权的情况下访问Redis以及读取数据。
ly0n
2020/11/04
2.3K0
Redis未授权访问漏洞复现
如何在Centos7上安装保护Redis
Redis是一个开源的内存数据结构存储,擅长缓存。Redis是一个非关系型数据库,以其灵活性,性能,可伸缩性和广泛的语言支持而闻名。
大瓜皮
2018/08/07
1K0
【详解】Redis配置文件详解
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储系统,通常用于缓存、消息队列等场景。Redis的配置主要通过其配置文件​​redis.conf​​来完成。本文将详细介绍Redis配置文件中的关键配置项及其作用,帮助读者更好地理解和优化Redis的性能。
大盘鸡拌面
2025/01/17
2640
Reids安全加固
在特定条件下,如果Redis以root身份运行,黑客可以给root账号写入SSH公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据。一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的Redis运行环境以及Linux主机带来安全风险,如删除、泄露或加密重要数据,引发勒索事件等。
陈不成i
2021/05/20
1.6K0
如何在Ubuntu 18.04上安装Redis
Redis是一个内存中的键值存储器,以其灵活性,性能和广泛的语言支持而闻名。它通常用作数据库,缓存和消息代理,并支持各种数据结构。
吴凌云
2018/07/24
3K0
redis未授权访问个⼈总结
刚好在整理未授权系列的洞,就学习了⼀波关于redis的,如果哪⾥有讲的不对的地⽅还请各位⼤佬指出.在内⽹中还是很容易碰到未授权的redis或者是弱⼝令的redis,毕竟都这样运维⼈员操作起来⽅便点.
糖果
2020/02/17
1.7K0
redis未授权访问个⼈总结
如何在Ubuntu 14.04上配置Redis群集
Redis是一个开源键值数据存储,使用内存存储模型和可选的磁盘写入来实现持久性。它具有事务,发布/订阅和自动故障转移等功能。建议将Redis与Linux一起用于生产环境,但开发人员还将OS X作为他们开发和测试的平台。Redis的客户使用大多数语言编写,其中的一些在其网站上有推荐。
温浪
2018/09/21
5940
linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)
编译需要的时间比较长,并且要求系统有gcc才能编译。阿里的Linux服务是自带的。 
红目香薰
2022/11/30
8040
linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)
相关推荐
如何在Ubuntu 14.04上保护Redis安装
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验