asp.net调用子控件

本文记录了在ASP.NET中遇到的登录表单中,无法直接通过C#调用Login控件内子控件的问题。在FormView或自定义Login控件模板中,直接调用子控件遇到困难。作者在优快云、CNBlog和StackOverflow等平台未找到满意答案,决定分享自己的解决笔记,以帮助初学者节省寻找解决方案的时间。

最近在实现登陆表单显示密码的实现,我在尝试使用c#实现的时候,虽然在form外可以很容易的调用到密码框的控件,但是在formview里或者在我使用的login控件(我是使用login控件拖入网页转换为模板再自己修改)是不能直接调用子控件的,我在csdn,cnblog,stackoverflow里查询一段时间,并没有找到很明确的回复,所以我在这里留个笔记,帮助其他初学者节约时间。

//这里是aspx
<td class="auto-style1">
		<asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="必须填写“密码”。" ToolTip="必须填写“密码”。" ValidationGroup="Login1">*</asp:RequiredFieldValidator>
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/image/eye.png" OnClientClick="ImageButton1_Click" OnClick="ImageButton1_Click1" />
</td>
//这里是aspx.cs文件
        protected void Page_Load(object sender, EventArgs e)
        {
        	//声明所要调用的子控件与网页中的关联
            TextBox password = (TextBox)Login1.FindControl("Password"); 
            if (password.Text != null)//防止页面刷新,密码文本被清空
            {
                password.Attributes["value"] = password.Text;
            }
        }
        protected void ImageButton1_Click1(object sender, ImageClickEventArgs e)
        {
            //声明所要调用的子控件与网页中的关联
            TextBox password = (TextBox)Login1.FindControl("Password");
            ImageButton imageButton = (ImageButton)Login1.FindControl("ImageButton1");
            if (TextBoxMode.Password == password.TextMode)
            {
				//更改显示密码图片按钮的图片链接
            	imageButton.ImageUrl = "~/image/eye-unhide.png";
            	//更改password文本框的属性
                password.TextMode = TextBoxMode.SingleLine;
            }
            else
            {
            	//同上
                imageButton.ImageUrl = "~/image/eye.png";
                password.TextMode = TextBoxMode.Password;
            }
        }

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

手打不易,转载请注明原文(https://blog.youkuaiyun.com/qq_41324966/article/details/97893952)谢谢
有什么问题可以在下面留言,大家相互交流,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值