One method is to use a CustomValidator
and use its ability to specifiy a client function to modify the way that your textbox is displayed.
Markup
<div class="row">
<div class="col-xs-12"><asp:TextBox ID="txtName" runat="server" CssClass="form-control" /></div>
<asp:CustomValidator ID="valName" runat="server" Text="*" Display="Dynamic" CssClass="col-xs-1"
ClientValidationFunction="valName_ClientValidate"
OnServerValidate="valName_ServerValidate" />
</div>
JavaScript
function valName_ClientValidate(sender, args) {
var $textbox = $('#<%= txtName.ClientID %>');
if ($textbox.val() != '') {
args.IsValid = true;
$textbox.parent().removeClass('col-xs-11').addClass('col-xs-12');
} else {
args.IsValid = false;
$textbox.parent().removeClass('col-xs-12').addClass('col-xs-11');
}
}
Note: As you are using Bootstrap, the jQuery library is available.
C#
protected void valName_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = !String.IsNullOrEmpty(txtName.Text);
}