2015-11-10 36 views
0

我的第一个ASP-Project有点问题。 Im提供用户和输入掩码来输入数据。在某些点上,我想控制输入是否为数字。如果没有,我想改变我的文本框的边框颜色。 这是我的文本框:以编程方式更改文本框的CssClass

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

框的样式看起来像这样:

.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; 
} 

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

 try 
    { 
     if (string.IsNullOrWhiteSpace(tbOnlyNumeric.Text)) 
     { 
      throw new Exception(); 
     } 
     else 
     { 
      salesExpected = Convert.ToInt32(tbOnlyNumeric.Text.ToString().Replace(".", string.Empty)); 
     } 
    } 
    catch (Exception ex) 
    { 
      debugLabel.Text = "EX"; 
      correct = false; 
      tbOnlyNumeric.CssClass = tbSalesExpected.CssClass.Replace("MyExpectedBox", "MyExpectedBoxWrong"); 
    } 

所以,如果有什么问题我的文本框应该看起来像:

enter image description here

而是它看起来像这样:

enter image description here

我已经注意到,如果在镀铬观看老CSS类被删除,但新一不addet。

任何想法为什么?

在此先感谢

+0

你不需要使用“CssClass.Replace”,你可以使用CssClass(“MyExpectedBoxWrong”)它会覆盖那里的类。也就是说,你真的想做这个客户端(更接近弗朗西斯索尔的答案)。 –

+0

@StephenBrickner哦,是的就是这样。使用CssClass而不是替换工作正常 –

回答

1

终于想通outthat使用的 // css样式:而不是

tbSalesExpected.CssClass = "MyExpectedBoxWrong"; 

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

解决了这个问题。

感谢您的回答和评论!

1

你可以试试这段代码。把这个在你的catch语句

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

//你的aspx文件的头部创建一个脚本,将改变文本框

<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> 
+0

这就是我所做的,如果我想从后面的代码操纵HTML/jQuery。 –

相关问题