..:o5k4r.m4dr1d


Custom Validator and CheckBoxList

Posted in .Net 2005,.Net 2008,.NET 2010,.Net 2013,Desarrollo Web,Soluciones,Windows por o5k4r.m4dr1d en junio 22, 2017
Tags: , , , ,

Recently, I was working on WebForms, with a CustomValidator associated to a CheckBoxList. The validator is working correctly, but is shown on a new line. For the rest of the controls, like textbox or dropdownlist, it works perfectly.

CustomValidatorThis is caused because the Checkboxlist, generates a HTML table element, wich by default is a block level element.

To fix this, we must add a CSS class to the checkboxlist, with the style property:

{
float: left;
}

With this style, the CustomValidator will be shown next to the CheckBoxList.

Javascript and CSS reference on MasterPage

En un desarrollo que estoy haciendo, en ASP .Net, Framework 3.5, tenía que incluir algunos scripts para cubrir una necesidad, y las referencias para incluir CSS ó JS, es ya muy conocida por todos:


<*link rel="stylesheet" href="/css/grid.css" type="text/css" media="screen" */>
<*script src="/js/jquery-1.6.min.js" type="text/javascript"><*/script>
<*/code>

Pero el problema viene cuando lo tienes que usar en una MaterPage y cuando la ASPX y la MasterPage están en diferentes carpetas, es muy común que no tome la ubicación, aún y cuando se use ~, que como sabemos sirve para indicar el folder raíz.. esto sucede básicamente por el uso del ToolkitScriptManager.

La solución para este caso, es en el HTML de la MasterPage usar la referencia de ésta manera (sólo quita los asteriscos *):


<*head runat="server">
<*title><*/title>
<*link href="<%# ResolveUrl("~/")%>css/custom-theme/jquery-ui-1.8.21.custom.css"
rel="stylesheet" type="text/css" /*>
<*script src="<%# ResolveUrl("~/")%>Scripts/jquery-ui-1.8.20.min.js" type="text/javascript"><*/script>
<*asp:ContentPlaceHolder ID="head" runat="server"><*/asp:ContentPlaceHolder>
<*/head>

Y en el codeBehind de la MasterPage, agregar el siguiente método:


protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Page.Header.DataBind();
}