以编程方式更改文本框的CssClass

时间:2015-11-10 12:52:22

标签: c# css asp.net textbox

我的第一个ASP项目遇到了一些问题。 我提供用户和输入掩码来输入数据。在某些点我想控制输入是否为数字。如果不是,我想更改文本框的边框颜色。 这是我的文本框:

(user_id, due_date)

框的样式如下:

<asp:TextBox ID="tbOnlyNumeric" runat="server" Height="30px" CssClass="MyNumericBox" autocomplete="off"></asp:TextBox>

我的想法是在try-catch-statment中投射文本框的文本:

.MyNumericBox
{
    width:250px;
    overflow: auto;
    font-size: 20px;
    position:relative;
    right:111px;
    border-color: #dcdcdc;
    padding: 4px;
    margin:15px;
    border-width: 2px;
    border-radius: 10px;
    border-style: solid;
    transition: box-shadow 0.3s, border 0.3s;
    text-align: right;
    padding-right: 18px;
    outline: none;
}

因此,如果我的文本框出现问题,它应该是这样的:

enter image description here

但它看起来像那样:

enter image description here

我已经注意到,如果在Chrome中观看它,旧的css类将被删除,但新的css类不会被添加。

知道为什么吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

你可以试试这段代码。把它放在你的捕获语句中

ScriptManager.RegisterClientStartUpScript(this,this.GetType(),"pop","changeCssStyle();",true);

//在aspx文件的head部分创建一个将更改的脚本 //文本框的css样式

<script type="text/javascript">
   function changeCssStyle(){
   //if you are using a master page refer the id of textbox to the id of 
   //head content in master page e.g. MainContent_tbOnlyNumeric

   //lets assume you already have reference to jquery in your head section
   $('#MainContent_tbOnlyNumeric').css("border-color","red");

   } 
</script>

答案 1 :(得分:1)

最后想出了使用:

tbSalesExpected.CssClass = "MyExpectedBoxWrong";

而不是:

tbOnlyNumeric.CssClass = tbSalesExpected.CssClass.Replace("MyExpectedBox", "MyExpectedBoxWrong");

解决了这个问题。

感谢您的回答和评论!