用户控制大写

时间:2011-07-13 08:40:29

标签: asp.net user-controls

我想创建一个用户控件[textbox],它转换大写的所有文本。 在普通网页中,我可以通过

完成
<asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>

    <style type="text/css">
    #TextBox1
       { 
          text-transform: uppercase; 
       } 
</style>

我不知道如何在用户控件中转换它们,如何在构建中创建自己的文本框控件。这样我就可以从工具箱中拖放它们并使用它。

任何帮助?

修改

就像,我想再给文本框一个属性[比方说:大写=“真”或大写=“假”]这将决定文本框字符是否为大写。

修改1

enter image description here

修改2

   using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace UppercaseBox
{
    public class UppercaseTextBox : System.Web.UI.WebControls.TextBox
    {
        public extern Boolean Uppercase 
        { get; 
          set;
        }
        public override string Text
        {
            get
            {
                return Uppercase && !string.IsNullOrEmpty(base.Text) ? base.Text.ToUpper() : base.Text;
            }
            set
            {
                base.Text = Uppercase && !string.IsNullOrEmpty(value) ? value.ToUpper() : value; ;
            }
        }
    }
}

enter image description here

3 个答案:

答案 0 :(得分:2)

我看到的更简单的方法是,您可以创建一个继承自TextBox的自定义控件,并覆盖Text属性,以便将文本更改为大写。

Public Class UppertextBox
        Inherits Web.UI.WebControls.TextBox

        Public Overrides Property Text As String
            Get
                Return MyBase.Text.ToUpper
            End Get
            Set(ByVal value As String)
                MyBase.Text = value.ToUpper ' no check for null, add it if necessary
            End Set
        End Property

    End Class

大写可能取决于您的控件的属性,以允许您使用它自定义页面中的文本框。

Public Class UppertextBox
        Inherits Web.UI.WebControls.TextBox

        Public Property Uppercase As Boolean

        Public Overrides Property Text As String
            Get
                If Uppercase AndAlso Not String.IsNullOrEmpty(MyBase.Text) Then
                    Return MyBase.Text.ToUpper
                Else
                    Return MyBase.Text
                End If
            End Get
            Set(ByVal value As String)
                If Uppercase AndAlso Not String.IsNullOrEmpty(value) Then
                    MyBase.Text = value.ToUpper
                Else
                    MyBase.Text = value
                End If

            End Set
        End Property

    End Class

您继承的控件也可以将其样式设置为大写,但如果您不想在每次使用时设置样式,我建议使用主题

修改

C#版本看起来像

public class UppercaseTextBox : System.Web.UI.WebControls.TextBox
    {
        public Boolean Uppercase { get; set; }
        public override string Text
        {
            get
            {
                return Uppercase && !string.IsNullOrEmpty(base.Text) ? base.Text.ToUpper() : base.Text;
            }
            set
            {
                base.Text = Uppercase && !string.IsNullOrEmpty(value) ? value.ToUpper() : value;
            }
        }
    }

答案 1 :(得分:2)

首先,您可以使用web user control只包含一个名为TextBox的{​​{1}}和Boolean属性

代码

UpperCase

<强>的.aspx

    

public Boolean UpperCase
{
    get;
    set;
}
在您的页面中

添加此控件

<%if(UpperCase) {%>
<style type="text/css">
#TextBox1
   { 
      text-transform: uppercase; 
   } 
</style>
<%} %>

<强>通知

我使用<uc1:TextControl ID="TextControl1" runat="server" UpperCase="false"/> 来保持ClientIDMode="static" ID的原样,如果您使用TextBox,那将会有效,您将不得不使用ASP.Net 4.0的{​​{1}}属性应用类似

的样式
ClientID

答案 2 :(得分:0)

使用样式表..

输入[类型=文本] {

text-transform:大写; }

在所有文本框中轻松实现效果