博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET TestBox技巧

Posted on 2011-04-25 22:38  itcfj  阅读(491)  评论(0编辑  收藏  举报

ASP.NET中控制CSS隐藏textbox边框

2009-11-25 17:40

1.隐藏上左右边框(填空式)

body
{
font-size:12px;
}


.myline
{
border-right: #000000 0px solid;
border-top #000000 0px solid;
border-left: #000000 0px solid;
border-bottom: #000000 1px solid
}

2.隐藏上下左右边框

.tbx_txt
{
    border-width: 0px 0px 0px 0px;
    overflow:hidden;
}

asp.net的多行TextBox随内容增加自动增高而不显示滚动条!

2011-03-04 16:35

<asp:TextBox runat="server" TextMode="MultiLine" Style="overflow-x: hidden; overflow-y: auto;"
        Height="303px" Width="661px"></asp:TextBox>

转载:http://wzjsblog.blogbus.com/logs/48173513.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="滚动条, scrollbar, 页面底部, 聊天窗口, " />
    <meta name="description" content="有些时候(如开发聊天程序),我们需要将将滚动条(scrollbar)保持在最底部,比如聊天窗口,最新发出和收到的信息要显示在最 下方,如果要看到最下方的内容,就必须保证滚动条保持在最底部。" />
    <title>将滚动条(scrollbar)保持在最底部的方法 - 滚动条, scrollbar, 页面底部, 聊天窗口, </title>
</head>
<body>
    <div id="example">
        <h3 id="example_title">
            将滚动条(scrollbar)保持在最底部的方法</h3>
        <div id="example_main">
            <!--************************************* 实例代码开始 *************************************-->

            <script type="text/javascript">
function add()
{
var now = new Date();
var div = document.getElementById('scrolldIV');
div.innerHTML = div.innerHTML + 'time_' + now.getTime() + '<br />';
div.scrollTop = div.scrollHeight;
}
            </script>

            <span class="notice">请点击“插入一行”按钮,插入最新信息,当出现滚动条时,滚动条将自动保持在底部。</span><br />
            <div id="scrolldIV" style="overflow: auto; height: 100px; width: 400px; border: 1px solid #999;">
            </div>
            <input type="button" value="插入一行" onclick="add();">
            <!--************************************* 实例代码结束 *************************************-->
        </div>
    </div>
</body>
</html>

 <asp:TextBox ID="TextBox1" runat="server" Height="100px" TextMode="MultiLine" Width="400px"></asp:TextBox>
    
        <script>
var div = document.getElementById("TextBox1")
div.scrollTop=div.scrollHeight+999999999
        </script>

ASP.NET动态生成TextBox并获取其值

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

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //创建一个文本框
        TextBox tbxName = new TextBox();
        tbxName.ID = "tbxName";
        tbxName.Text = "OK";
        this.form1.Controls.Add(tbxName);

        //创建一个按钮
        Control c = ParseControl("<asp:Button Text = '按我' ID = 'myButton' runat = 'server' />");
        this.form1.Controls.Add(c);

        //创建一个按钮事件
        Button myButton = (Button)Page.FindControl("myButton");
        myButton.Command += new CommandEventHandler(this.myButton_Click);

    }

    protected void myButton_Click(Object sender, EventArgs e)
    {
        //获取文本框的值
          由于动态生成的文本框,生成的是HTML控件,所以获取文本框的值只能用

            string strTxtValue=Request.form["txtName"].toString()

来获取,而不能用

            TextBox tb=(TextBox)this.page.form.FindControl("txtName")

            string strTxtValue=tb.Text

来获取(亲身体验获取不到更改后的值),因为生成的是HTML控件,而不是Web控件,tb获取的值是最初的值
    }
}

另:

 protected void btnSave_Click(object sender, EventArgs e)

{

        ArrayList al = new ArrayList();
        al.Add(txtAname1);        //txtAname1 为TextBox 的 id ,代表 TextBox 类型,不是字符串
        al.Add(txtAname2);
        al.Add(txtAname3);
        al.Add(txtAname4);

        string[] txtid = { "txtAname1", "txtAname2", "txtAname3", "txtAname4" };

       #region 修改


            //问题
            mTQI = bTQI .GetModel(int.Parse(Request.QueryString["ID"]));
            mTQI.QName = Request.Form["txtQname"].ToString().Trim();
            mTQI.Qcreatetime = DateTime.Parse(Request.Form["txtQcreatetime"].Trim());
            mTQI.Qa = Request.Form["txtQa"].Trim();
            mTQI.Qislist = Request.Form["DropDownList1"].Trim();
            //mTQI.Qcreatetime = DateTime.Parse(txtQcreatetime.Text.Trim());    //这三行获取不到改变的值
            //mTQI.Qa = txtQa.Text;
            //mTQI.Qislist = DropDownList1.SelectedValue;

           //答案

            List<JC.Model.t_Answerinfo> lTai2 = new List<JC.Model.t_Answerinfo>();
            DataSet ds = bTAI.GetList("aQid="+Request.QueryString["ID"]+"");
            lTai2 = bTAI.DataTableToList(ds.Tables[0]);
            for (int i = 0; i < lTai2.Count;i++ )
            {
                //TextBox txt = (TextBox)FindControl("txtAname1");           
                string st = Request.Form[txtid[i].ToString()].ToString();
                lTai2[i].Aname = st;
            }
           
            //修改
            numTQ = bTQI.Update(mTQI);
            for (int i = 0; i < lTai2.Count; i++)
            {
                bTAI.Update(lTai2[i]);
            }
            if (numTQ > 0)
            {
                btnSave.Enabled = false;
                ClientScript.RegisterStartupScript(GetType(), "", "<script type='text/javascript'>alert('修改成功'); window.location.href='VoteList.aspx';</script>");
            }
            #endregion
        }

 }

.aspx与.aspx.cs页面的代码分别分别如下:

1、.aspx页面的代码如下:

-----------------------------------------------------------------------------------------------------------

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Textbox控件</title>
    <script type="text/javascript" language="javascript">
       var defaultUsername="请输入用户名...";
       var defaultPassword="请输入密码...";
      
        function clearName() /*当光标移动到用户名输入框时,如果输入框内无内容或者内容等于默认值,则将输入框的默认提醒值"请输入用户名..."清空*/
        {
         var username=document.forms[0]['tb_username'].value;
         if(username==defaultUsername ||username=="")
          document.forms[0]['tb_username'].value="";
                     
        }
       
       
        function checkName()/*当光标移出用户名输入框时,如果用户没有往用户名输入框中输入任何内容,则将输入框的值置为默认值提醒值"请输入用户名..."*/
        {
          var username=document.forms[0]['tb_username'].value;
          if(username==""||username==defaultUsername )
          document.forms[0]['tb_username'].value=defaultUsername;
     
         
        }
       
       
         function clearPassword() /*当光标移动到密码输入框时,如果输入框内无内容或者内容等于默认值,则将输入框的默认提醒值"请输入密码..."清空*/
        {
         var password=document.forms[0]['tb_password'].value;/*获取用户名输入框的内容*/
         if(password==defaultPassword ||password=="")
          document.forms[0]['tb_password'].value="";               
        }
       
       
        function checkPassword()/*当光标移出密码输入框时,如果用户没有往密码输入框中输入任何内容,则将输入框的值置为默认值提醒值"请输入密码..."*/
        {
          var password=document.forms[0]['tb_password'].value;
          if(password==""||password==defaultPassword )
          document.forms[0]['tb_password'].value=defaultPassword;
        }
       
       
    </script>
</head>

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="用户名:"></asp:Label>
       <span id="username" style="color:Maroon;"><asp:TextBox ID="tb_username" runat="server" OnFocus="clearName()" OnBlur="checkName()"></asp:TextBox></span>
           
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="密 码:"></asp:Label>
        &nbsp;
        <asp:TextBox ID="tb_password" runat="server" OnFocus="clearPassword()" onBlur="checkPassword()"></asp:TextBox>
    </div>
    </form>
</body>
</html>

---------------------------------------------------------------------------------------------------------------------------------

2、.aspx.cs页面的关键代码如下:(注:我这个页面的命名叫:Textbox.aspx.cs)

-------------------------------------------------------------------------------------------------------------------------------


        protected void Page_Load(object sender, EventArgs e)
    {    

      string defaultUsername = "请输入用户名...";
      string defaultPassword = "请输入密码...";
        
        if (!IsPostBack)
        {
            tb_username.Text = defaultUsername;
           
            tb_password.Text = defaultPassword;
          
        }


        //if (tb_username.Text == defaultUsername)

           
        //    tb_username.ForeColor = System.Drawing.Color.Blue;

        //if (tb_password.Text == defaultPassword)
        //    tb_password.ForeColor = System.Drawing.Color.Red;
    }

------------------------------------------------------------------------------------------------------------------------------

3、截图:

Asp.Net如何遍历所有TextBox控件并清空

2009-07-21 15:20

asp.net 不能像window那样直接遍历this.Controls就可以了,因为:

  1. this.Controls只是包含了Page根一级的control,这样次级的control就都没有遍历
  2. TextBox一般会放在form里面,遍历this.Controls只会访问form control,而不会访问form的子Contorl

下面使用递归对页面control树进行完全遍历

    private void ResetTextBox(ControlCollection cc)
    {
        foreach (Control ctr in cc)
        {
            if (ctr.HasControls())
            {
                ResetTextBox(ctr.Controls);
            }
            if (ctr is TextBox)
            {
                ((TextBox)ctr).Text = string.Empty;
            }
        }
    }

调用

ResetTextBox(this.Controls);

/// <summary>
/// 清空textBox
/// </summary>
/// <param name="ParentControl"></param>
public static void GetChildControlClear(Control ParentControl)
{
if (ParentControl.HasControls())
{
foreach (Control ctl in ParentControl.Controls)
{
if(ctl.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
((System.Web.UI.WebControls.TextBox)ctl).Text = "";
}
GetChildControlClear(ctl);
}
}
}

Code
1 FieldInfo[] infos = GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance);
2        for (int i = 0; i < infos.Length; i++)
3        {
4            if (infos[i].FieldType == typeof(TextBox))
5            {
6                ((TextBox)infos[i].GetValue(this)).Text = "";
7            }
8        }


Code
1<script language="javascript" type="text/javascript">
2        function ClearAllTextBox() {
3            var obj = window.document.forms[0];
4            for (i = 0; i < obj.elements.length; i++) {
5                var elem = obj.elements[i];
6                if (elem) {
7                    if (elem.type == "text") {
8                        elem.value = "";
9                    }
10                }
11            }
12        }
13    </scrip

今天看了一老外写的通过CSS和JS给TextBox添加水印功能,觉得很不错,标记以便以后使用
<style type="text/css">
        .WaterMarkedTextBox
        {
            height: 16px;
            width: 168px;
            padding: 2px 2 2 2px;
            border: 1px solid #BEBEBE;
            background-color: #F0F8FF;
            color: gray;
            font-size: 8pt;
            text-align: center;
        }
        .WaterMarkedTextBoxPSW
        {
            background-position: center;
            height: 16px;
            width: 168px;
            padding: 2px 2 2 2px;
            border: 1px solid #BEBEBE;
            background-color: #F0F8FF;
            color: white;
            vertical-align: middle;
            text-align: right;
            background-image: url(Images/psw_wMark.png);
            background-repeat: no-repeat;
        }
        .NormalTextBox
        {
            height: 16px;
            width: 168px;
        }
</style>
<script language="javascript" type="text/javascript">
        function Focus(objname, waterMarkText) {
            obj = document.getElementById(objname);
            if (obj.value == waterMarkText) {
                obj.value = "";
                obj.className = "NormalTextBox";
                if (obj.value == "User ID" || obj.value == "" || obj.value == null) {
                    obj.style.color = "black";
                }
            }
        }
        function Blur(objname, waterMarkText) {
            obj = document.getElementById(objname);
            if (obj.value == "") {
                obj.value = waterMarkText;
                if (objname != "txtPwd") {
                    obj.className = "WaterMarkedTextBox";
                }
                else {
                    obj.className = "WaterMarkedTextBoxPSW";
                }
            }
            else {
                obj.className = "NormalTextBox";
            }

            if (obj.value == "User ID" || obj.value == "" || obj.value == null) {
                obj.style.color = "gray";
            }
        }
    </script>

<td>
                <asp:TextBox ID="txtUserId" runat="server"
   onfocus="Focus(this.id,'User ID')"
                    onblur="Blur(this.id,'User ID')"
      Width="126px" CssClass="WaterMarkedTextBox">User ID</asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Password
            </td>
            <td>
                <asp:TextBox ID="txtPwd" TextMode="Password"
   runat="server" onfocus="Focus(this.id,'')"
                    onblur="Blur(this.id,'')" Width="126px"
    CssClass="WaterMarkedTextBoxPSW" />
            </td>