2015-03-13 150 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

相关问题