【问题标题】:ASP.NET MVC GridView filtering by value from textbox on button click? (DevExpress)ASP.NET MVC GridView 按按钮单击时文本框中的值过滤? (开发快递)
【发布时间】:2015-03-13 09:33:41
【问题描述】:

总结:我想在文本框中输入文本,按下按钮,GridView 应该会显示缩小的内容——按值过滤。

详细信息: 作为 DevExpress APS.NET MVC 5 初学者,我有一个使用 GridView 的简单演示应用程序。第一个示例使用带有过滤行的 Gridview —— DevExpress (14.2) GridView 向导生成的所有内容。

向列过滤器输入一些值时,显示的内容会在一段时间后减少:

我需要实现在文本框中输入值的替代方法,并且只有在按下应用按钮后才会更新 GridView 内容:

视图定义如下:

@{
    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 并使其更新。

【问题讨论】:

    标签: asp.net-mvc-5 devexpress


    【解决方案1】:

    在这种情况下,应用按钮不应执行提交。将其 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 函数中,使用 TextBox 的客户端 GetText 方法来获取在您的 TextBox 中键入的文本。然后,使用 Grid 的客户端 AutoFilterByColumn 通过 Name 列将过滤器应用于网格:

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

    其中“GridView”是您的 GridView 扩展的名称。

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多