[Asp.net]说说密码框和只读框 – wolfy

引言

最近负责了一个公司的小项目,从前台到后代,都是自己搞的,为一个客户弄一个信息管理的小系统,虽然对界面什么的没要求,处于负责的态度,还是给他加了一下样式,当然,大部分样式还是从网上扒下来的。

密码框

情景是这样的,当你在用户列表中选择要编辑的记录时,需要在编辑页面将用户信息填在对应的框内,密码框的问题就来了。这里弄了一个简单页面进行测试,代码如下:

1 <%@ Page Language=C# AutoEventWireup=true CodeBehind=Default.aspx.cs Inherits=Wolfy.TextBoxDemo.Default %>
2 <!DOCTYPE html>
3 <html xmlns=”http://www.w3.org/1999/xhtml”>
4 <head runat=”server”>
5 <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
6 <title></title>
7 </head>
8 <body>
9 <form id=”form1″ runat=”server”>
10 <div>
11 密码框:<asp:TextBox runat=”server” TextMode=”Password” ID=”txtPwd” />
12
13 </div>
14 </form>
15 </body>
16 </html>

现在我们,在页面加载的时候,就给它设置个值,代码如下:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 namespace Wolfy.TextBoxDemo
9 {
10 public partial class Default : System.Web.UI.Page
11 {
12 protected void Page_Load(object sender, EventArgs e)
13 {
14 if (!IsPostBack)
15 {
16 this.txtPwd.Text = admin;
17 }
18 }
19 }
20 }

一般情况下,都会习惯这样去写,浏览一下,被坑了。

竟然没有值,怎么给它赋值呢?

幸亏,还有一种方式,不然这密码框就废了,只能取,不能改变值,太无语了。

1 namespace Wolfy.TextBoxDemo
2 {
3 public partial class Default : System.Web.UI.Page
4 {
5 protected void Page_Load(object sender, EventArgs e)
6 {
7 if (!IsPostBack)
8 {
9 //this.txtPwd.Text = “admin”;
10 this.txtPwd.Attributes.Add(value,admin);
11 }
12 }
13 }
14 }

浏览看看结果:

这…..

为什么非采用这方式,用Text属性多好!

只读框

情景是这样的,使用js或者jquery为只读框复制,在cs中再获取这个值,单击按钮,然后保存到数据库中。

js代码:

1 <script type=text/javascript>
2 window.onload = function () {
3 document.getElementById(txtReadOnly).innerText=这是js动态赋值的;
4 }
5 </script>

修改代码:

1 只读框:<asp:TextBox runat=”server” ReadOnly=”true” ID=”txtReadOnly” />
2 <asp:Button Text=”按钮” ID=”btn” OnClick=”btn_Click” runat=”server” />

效果

cs中的代码:

出于习惯性,想去文本框的值,一般都会采用上面的方式,可是….

1 protected void btn_Click(object sender, EventArgs e)
2 {
3 string strReadOnly = this.txtReadOnly.Text;
4 }

 调试一下,看能不能获取到:

 

解决办法:

1 protected void btn_Click(object sender, EventArgs e)
2 {
3 string strReadOnly = Request.Form[txtReadOnly];
4 }

结果:

分析:

html源码:

修改只读框,给他一个默认值:

1 只读框:<asp:TextBox runat=server ReadOnly=true Text=这是默认值 ID=txtReadOnly />
2 <asp:Button Text=按钮 ID=btn OnClick=btn_Click runat=server />

调试一下看看结果:

对应的html源码:

猜测:只读框通过Text属性,只能获取在客户端浏览器生成的html标签中有value属性的文本框的值。(比较拗口)

总结

之前开发都是负责某个模块,这第一次从登录到其他的业务处理,自己全权负责的,所以觉得很奇怪。今天群里面也有人问起了,就觉得有必要总结一下。对于只读框,如果本身就有值,那么可以通过Text属性获取到。如果是前台,动态设置的内容,就会获取不到。

本文链接:[Asp.net]说说密码框和只读框,转载请注明。



You must enable javascript to see captcha here!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量