8

ユーザーがフィルタリングできるグリッドがあります。ユーザーがグリッドに入力するために使用される検索語を変更した場合、前の検索からのフィルターはそのまま残ります。

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

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 
            }); 
        }); 
    <%  
}); 

%>

フィルタメニューを表示する次のコードを追加できることは知っていますが、.rebind()呼び出しが発生する前または後に、フィルタを自動的にクリアできるようにしたいと思います。

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

2 に答える 2

4

コルチェフインスピレーションで...私は、リバインドが発生する前に実行される次のことを思いつきました。フィルター値をクリアしてから、新しい (存在しない) 値を適用します。

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

// rebind the related grid
groupsGrid.rebind({
    userName: user
});
于 2010-01-27T16:10:59.370 に答える
2

私の返信はこちらで確認できます。

于 2010-01-27T13:26:39.763 に答える