2010-01-26 33 views
8

Tengo una grilla que permite al usuario filtrar. Si el usuario cambia la palabra de búsqueda que se utiliza para llenar la cuadrícula, el filtro de la búsqueda anterior permanece en su lugar.Cómo borrar el filtro en Telerik ASP.NET MVC Grid

<label for="UserName"> 
    User Name:</label> 
<%= Html.TextBox("UserName", "") %> 
&nbsp; &nbsp; 
<input id="btnSearch" type="submit" value="Submit" /> 
</p> 
<div class="<%= "t-" + Html.GetCurrentTheme() %>" style="width: 400px;"> 
<%= Html.Telerik().Grid<ADGroup>()  
     .Name("Groups") 
     .Columns(columns=> 
     { 
      columns.Add(c => c.GroupName).Width(350); 
     }) 
     .Sortable() 
     .Filterable() 
     .Pageable(paging => 
      paging.PageSize(20) 
     ) 
     .Ajax(ajax => ajax.Action("_GetGroups", "GroupSearch", new { userName = "John Doh" })) 
     .BindTo((IEnumerable<ADGroup>)ViewData["Groups"]) 
%> 
</div> 

He activado el reencuentro de la ceñida cuando se presiona btnSearch.

<% 
Html.Telerik().ScriptRegistrar() 
    .OnDocumentReady(() => 
    { 
    %> 
    var groupsGrid = $('#Groups').data('tGrid'); 
    $('#btnSearch') 
     .live("click", function() { 
      var user = $('#UserName').val(); 
      // rebind the related grid 
      groupsGrid.rebind({ 
       userName: user 
      }); 
     }); 
    <% 
}); 

%>

Sé que puedo añadir el siguiente código que aparezca el menú de filtros, pero yo preferiría ser capaz de limpiar el filtro automagicamente antes o después de la .rebind () se produce la llamada.

$('.t-grid-filter:first') 
    .trigger('click'); 
+0

tratando de entender lo que está preguntando: ¿desea borrar el filtro y volver a enlazar la cuadrícula cuando hace clic en buscar? –

+0

Correcto ... Básicamente, quiero que el filtro que se ha aplicado se borre en cualquier momento que haga clic en el botón btnSearch, ec. – RSolberg

Respuesta

3

Con korchev's inspiración ... Se me ocurrió lo siguiente que se ejecuta antes de que se produzca la nueva vinculación. Borra los valores de filtro y luego aplica los valores nuevos (inexistentes).

//Clear UI Filter Text 
$('#Groups .t-clear-button').click(); 
$('#Groups .t-filter-button').click(); 

// rebind the related grid 
groupsGrid.rebind({ 
    userName: user 
}); 
2

Puede verificar mi respuesta here.

+0

¡Gracias! Muy apreciado. – RSolberg

+0

El código de hecho borra el valor del filtro de cuadro de texto, pero en realidad no cambia el filtro detrás de la escena. Creo que también tendré que simular el clic en el botón de filtro real para que funcione. ¡Avíseme cuando la solución oficial esté lista! – RSolberg

Cuestiones relacionadas