C#动态代码生成控件后其他事件不能获取该控件值的解决方法

前言

本文主要给大家介绍了关于C#动态代码生成控件后其他事件不能获取该控件值的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

1.新建web项目,添加两个Button控件,结果如图。

2.Button按钮控件点击事件代码如下

protectedvoid Button1_Click(object sender, EventArgs e)
{
 TextBox t = newTextBox();
 t.ID = "test";
 t.Text = "测试框";
 t.Attributes.Add("runat","server");
 form1.Controls.Add(t);
 Response.Write(((TextBox)form1.FindControl("test")).Text);
}

protectedvoid Button2_Click(object sender, EventArgs e)
{
 Response.Write(((TextBox)form1.FindControl("test")).Text);
}

点击Button1控件:

可以看到动态生成的文本框的值成功获取到。

但是点击Button2会出现如下结果:

原因是因为动态生成的文本框其实是HTML控件,所以获取文本框的值 控时,要注意获取的方法,不同时间获取的方法不同.(页面一加载完时的值 和 控件的原有值改变时 两种情况)

3.代码修改成如下即可获取动态生成的文本框的值。

结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • C#入门教程之ListBox控件使用方法

    ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSoure DisplayMember ValueMenber 3)实例 下面开始一一说明上面的ListBox控件的使用. 首先来说控件的属性, (1)Items:使用此属性获取列表控件项的属性.此属性可用于确定列表控件中的选定项.添加items时既可以设计时静态添加,也可以在代码中动态添加.如果不想显示设计时添加的items,可以在代码中添加this.listBo

  • C#数据绑定控件中的DataSource属性浅谈

    有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的"温故而知新"的真正内涵.常用的C#数据绑定控件有:Repeater.DataList.GridView.DetailsView等,在这里我拿Repeater来简单说明问题.使用该属性指定用来填充Repeater控件的数据源.DataSource可以是任何System.Collections.IEnumerable对象,如用于访问数据库的Syste

  • C#波形图控件制作示例程序

    首先添加一个timer,50s 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms; namespace High_Tech_Watch{    public partial class UserControl1

  • C#自定义控件添加右键菜单的方法

    C#自定义控件添加右键菜单非常简单,主要用到控件,像control定义右键菜单,用items.add()叠加右键菜单内容,用click事件处理函数. 1.control是要定义右键菜单的控件. private void control_MouseDown(object sender, MouseEventArgs e) {    if (e.Button == MouseButtons.Right)    {        ContextMenu menu = new rightClickMen

  • c# table 控件用法

    复制代码 代码如下: for (int i = 0; i < 10; i++) { TableRow tblrow = new TableRow(); for (int j = 0; j < 10; j++) { TableCell tblcell = new TableCell(); tblcell.Text = "单元格"; tblcell.BorderWidth = 1; tblrow.Cells.Add(tblcell); } tbllist.Rows.Add(tb

  • C# TreeView控件使用代码

    当前选中项:TreeView.SelectedNode 增加顶级节点:TreeView.Nodes.Add("Key", "Text") 增加同级节点:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text") 增加子节点:TreeView.SelectedNode.Nodes.Add("Key", "Text") 全部展开:TreeVie

  • C# 开发圆角控件(窗体)的具体实现

    最近在做卡片视图的程序,要求将控件做成带有圆角的效果,下面是我在网上查找的资料,经过测试,确定可以实现功能.其中方法三既适应于控件,也适应于窗体. 先上传效果图: 方法一: 增加命名空间:using System.Drawing.Drawing2D;  添加方法如下:当然各角的点可根据需要确定. 复制代码 代码如下: private void Type(Control sender, int p_1, double p_2)        {            GraphicsPath oP

  • c#重写TabControl控件实现关闭按钮的方法

    1.c#里面的TabControl控件没有关闭按钮,而且很难看. 2.有一些已经做好的第三方控件,但是收费. 3.由于我的故障树推理诊断项目在绘图的时候允许同时打开多个文档进行操作,就要实现类似于浏览器的多标签功能,而且要可以关闭. 4.所以自己写一个类继承TabControl类,然后重写一些里面的方法即可实现. 5.特色:有关闭按钮,标签有背景颜色,选中的标签和没选中的颜色不一样,实现鼠标中键和右键的功能 先看我的项目中的完整代码,有很多代码是我的项目需要,可根据你的项目需求删减,核心的代码后

  • 使用VS2010 C#开发ActiveX控件(上)

    要开发Web版的读卡程序,大体思路如下: 1.       使用C#对原始的Dll进行封装,这里要封装两部分内容,一部分是串口通信的功能,一部分是对卡读写的功能. 2.       开发ActiveX控件调用封装后的Dll,使用串口通信来对卡进行读写. 3.       打包并发布ActiveX控件. 4.  使用ActiveX控件. 思路1中封装代码有2个类SerialInterfaceHelper,串口通信的帮助类,MifareOneHelper,M1卡的读写帮助类,我们放在了项目CardR

  • 解析C#自定义控件的制作与使用实例的详解

    上篇:控件制作本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果.我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享.第一步:新建一个控件库项目:myControl 第二步:从工具箱里面拖动1个PictureBox.1个Button.6个Lable控件到用户界面上,布局如下: 如上图,设置pictureBox的Name为picBox,背景为白色,Button的Name为btnOpen,另外靠左的三个Lable的Text属性分

随机推荐