最近在实现登陆表单显示密码的实现,我在尝试使用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)谢谢
有什么问题可以在下面留言,大家相互交流,共同进步。