zoukankan      html  css  js  c++  java
  • [Asp.net]说说密码框和只读框

    引言

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

    密码框

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

     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属性获取到。如果是前台,动态设置的内容,就会获取不到。

  • 相关阅读:
    Struts2框架
    读者写者问题
    哲学家就餐问题
    理解中断
    理解处理机调度
    理解死锁
    理解进程
    Linux CentOS 6.7 挂载U盘
    家庭-养老院模型理解IOC和DI
    Bash基础
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3773711.html
Copyright © 2011-2022 走看看