• 1397/08/20

رفرش نشدن تمام صفحه با فشردن دکمه جستجو از نوع Submit :

سلام استاد مدائنی بزرگوار

یک مشکل داشتم که ممنون میشم راهنمائی بفرمائید:

 یک ویو دارم که درون آن یک WebGrid هست و یک تکست باکس و دکمه سرچ ،  با لود اولیه page, همه رکوردها در گرید لود میشود و وقتی متنی را در تکست باکس وارد میکنم و دکمه سرچ را کلیک میکنم، اطلاعات بدرستی از کنترلر دریافت و در WebGrid  نمایش داده میشود.  اما مشکل اینه که با فشردن دکمه سرچ ،کل صفحه رفرش میشود. از  ajax.beginform استفاده کرده ام، اما نمیدونم کجای کارم ایراد داره. میخام با انجام عملیات جستجو، فقط گرید بروزرسانی بشه و بقیه آیتمهای موجود در page رفرش نشن. لطفاً راهنمائی فرمائید

این کد کنترلر هست:

  Function Index() As ActionResult
            Return View(db.Brands.ToList())
        End Function


        Function BrandList(strName As String) As ActionResult
            If strName = Nothing Then
                Return PartialView(db.Brands.ToList())
            Else
                Return PartialView(db.Brands.Where(Function(x) x.Name.Contains(strName)).ToList())
            End If
        End Function

و این index.vbhtml

@Using (Ajax.BeginForm("BrandList", "Brand", FormMethod.Post,
                                                    New AjaxOptions With {.UpdateTargetId = "GridList"}))

End Using
<section Class="panel">
    <header Class="panel-heading tab-bg-dark-navy-blue">
        <label class="bg-transparent wht-color">برندها</label>
    </header>

    <div Class="panel-body pull-left">
        @Using (Html.BeginForm("Index", "Brand", FormMethod.Get))
            @Html.TextBox("strName", Nothing, New With {.class = "form-control", .PlaceHolder = "جستجو"})
            @<Button type="submit" value="" style="display: none"></Button>
        End Using

    </div>

    <div id="GridList">
        @Html.Action("BrandList")
    </div>

</section>

<div Class="pull-left btn-toolbar">
    <div Class="btn btn-default">
        @Html.ActionLink(" ", "BrandAdd", Nothing, htmlAttributes:=New With {.class = "glyphicon glyphicon-plus btn btn-small", .data_toggle = "tooltip", .data_placement = "top", .title = "اضافه کردن سطر جدید"})
    </div>
    <div Class="btn btn-default">
        @Html.ActionLink(" ", "Index", Nothing, htmlAttributes:=New With {.class = "glyphicon glyphicon-tasks btn btn-small", .data_toggle = "tooltip", .data_placement = "top", .title = "لیست برندها"})
    </div>
</div>

<script type="text/javascript">
    $(function () {
        $('[data-toggle="tooltip"]').tooltip()
    })
</script>



و این partial view

@ModelType IEnumerable(Of Machinary.Brand)
@Code
    Dim wg As New WebGrid(Model, rowsPerPage:=10, canPage:=True, canSort:=True, ajaxUpdateContainerId:="wg1")
    Dim rowIndex = ((wg.PageIndex + 1) * wg.RowsPerPage) - (wg.RowsPerPage - 1)
End Code

@wg.GetHtml(tableStyle:="table table-bordered table-hovor", mode:=WebGridPagerModes.All,
                                                   htmlAttributes:=New With {.id = "wg1", .class = "Grid"},
                                                   firstText:="<<",
                                                   lastText:=">>",
                                                   footerStyle:="table-pager",
                                                   columns:=wg.Columns(
                                               wg.Column("Name", Sorter("Name", "عنوان", wg)),
                               wg.Column(header:="عملیات", format:=Function(item) New HtmlString(
                               Html.ActionLink(" ", "BrandEdit", New With {.id = item.id}, htmlAttributes:=New With {.class = "glyphicon glyphicon-edit btn btn-info btn-sm", .data_toggle = "tooltip", .data_placement = "top", .title = "ویرایش"}).ToString() + " " +
                               Html.ActionLink(" ", "BrandDelete", New With {.id = item.id}, htmlAttributes:=New With {.class = "glyphicon glyphicon-trash btn btn-danger btn-sm", .data_toggle = "tooltip", .data_placement = "top", .title = "حذف"}).ToString()))))

@functions
    Public Shared Function Sorter(columnName As String, columnHeader As String, grid As WebGrid) As String
        Return String.Format("{0} {1}", columnHeader, If(grid.SortColumn = columnName, If(grid.SortDirection = SortDirection.Ascending, "▲", "▼"), String.Empty))
    End Function
End Functions

خیلی ممنونم

  • 1397/08/20
  • ساعت 07:50

این VB هست و متاسفانه من بلد نیستم 

بررسی کنید رفرنس مربوط به Ajax.BeginForm رو در صفحه داده باشید 

وقتی رفرش مشه یعنی Ajax اجرا نمیشه 


logo-samandehi