2015-03-13 106 views
0

摘要:我想輸入文本到文本框中,按下按鈕,GridView應顯示縮小的內容 - 按值過濾。ASP.NET MVC GridView按鈕點擊文本框中的值過濾? (DevExpress)

Details:作爲DevExpress APS.NET MVC 5初學者,我有一個簡單的演示應用程序,它使用GridView。第一個示例使用Gridview和filter行 - DevExpress(14.2)GridView嚮導生成的所有內容。

Initial state of the gridview

當進入一些值到柱過濾,所顯示的內容被一段時間後降低:

Filtered content

我需要實現其中I輸入值到文本框中的替代,並且僅在按下「應用」按鈕後才更新GridView內容:

I want filtering after pressing the Apply button

視圖的定義如下:

@{ 
    ViewBag.Title = "GridView filtering"; 
} 

<h2>@ViewBag.Title</h2> 

@Html.DevExpress().Label(settings => 
{ 
    settings.Name = "Label"; 
    settings.Text = "Filter for the Name column"; 
}).GetHtml() 

@Html.DevExpress().TextBox(settings => 
{ 
    settings.Name = "TextBox"; 
}).GetHtml() 

@Html.DevExpress().Button(settings => 
{ 
    settings.Name = "BtnApply"; 
    settings.Text = "Apply"; 
    settings.UseSubmitBehavior = true; 
}).GetHtml() 


@Html.Action("GridViewPartial") 

我迷失在如何按鈕單擊綁定的功能,如何讓文本框的內容,以及如何將其傳遞給GridView和使其更新。

回答

2

在這種情況下,應用按鈕不應該執行提交。將其UseSubmitBehavior屬性設置爲False。處理該按鈕的客戶端Click事件。要訪問它的加價,使用ButtonSettings.ClientSideEvents

@Html.DevExpress().Button(settings => 
{ 
    settings.Name = "BtnApply"; 
    settings.Text = "Apply"; 
    settings.UseSubmitBehavior = false; 
    settings.ClientSideEvents.Click = "btnApplyClick"; 
}).GetHtml() 

在btnApplyClick JS功能,使用CLIEN端GetText方法TextBox'es讓你的文本框中鍵入的文本。然後,使用網格的客戶端AutoFilterByColumn的名稱列在您的過濾器應用到網格:

<script type="text/javascript"> 
    function btnApplyClick(s, e) { 
     var filter = TextBox.GetText(); 
     GridView.AutoFilterByColumn("Name", filter); 
    } 
</script> 

哪裏「的GridView」是你的GridView擴展名。

+0

非常感謝。它很好用;) – pepr 2015-03-17 08:15:35

相關問題