如何使用Webgrid上方的下拉框实现每页行数,并更新每个选定值的webgrid

时间:2013-03-06 06:18:15

标签: asp.net-mvc asp.net-mvc-3 c#-4.0 webgrid

我在Webgrid上创建了一个Drop Downbox,如果用户从下拉框中选择任何值,我的webgrid会更改每页的行...所以...但它不能正常工作,我的webgrid没有更新 所以请给我一些提示来实现它.. 这是我的Code..here VIEW .... CODE

<div id="contentwrapper" class="contentwrapper">

                  <form id="opation" action="">
                  <div class="tableoptions">                                            
                   <button class="submit radius2" id="Act" onclick="submitForm(this.id);">Active</button> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button class="submit radius2" id="Dec" onclick="submitForm(this.id);">DeActive</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button class="submit radius2" id="Del" onclick="submitForm(this.id);">Delete</button>&nbsp;&nbsp; @using (Ajax.BeginForm(new AjaxOptions{ InsertionMode = InsertionMode.Replace, UpdateTargetId = "myGrid" })) { <label>Search User: </label><input type="text" name="UserName" id="UserName" value=""/> <button class="submit radius2" id="Search" value="Search">Search</button>}                       
                  </div> 
                 </form>
                 Record Per Page:&nbsp;<form id="test" action=""><select name="DD" class="tbl_top_link" name="Pagelimit" id="Pagelimit" onchange="Count(this.value);"><option value="">- Select -</option><option id="1" value="1">1</option><option id="5" value="5">5</option><option id="10" value="10">10</option><option id="20" value="20">20</option><option id="30" value="30">30</option></select></form>     

                                  

                          @{      

                               var temp = converttoInt16(ViewData["Pagesize"]);
                              var grid = new WebGrid(source: Model,
                                                       defaultSort: "Name", rowsPerPage: temp,
                                                          selectionFieldName: "SelectedRow", canPage: true);

                                                 //grid.Pager(mode: WebGridPagerModes.All,
                                                 //     firstText: "First", lastText: "Last",
                                                 //     previousText: "Previous",
                                                 //     nextText: "Next",  
                                                 //     numericLinksCount: 15);


                          <div id="mygrid">
                                             @grid.GetHtml(tableStyle: "gridTable",
                                                     headerStyle: "gridHead",
                                                     footerStyle: "gridFooter",
                                                     rowStyle: "gridRow",
                                                     alternatingRowStyle: "gridAltRow",
                                                columns: grid.Columns(
                                                         grid.Column(header: "", format: @<text><input type="checkbox" name="chkactive[]" id="chkactive[]" value="@item.User_id"/></text>),
                                                grid.Column("User_Id"),
                                                grid.Column("Name"),
                                                grid.Column("Username"),
                                                grid.Column("Fb_Id"),
                                                grid.Column("User_image", format: @<text><img src="@Url.Content(@item.Image_path)" height="30px" width="50px" alt="noimage"/></text>),
                                                grid.Column("Email"),
                                                grid.Column("Gender"),
                              grid.Column(header: "Status", format: @<text>@if (@item.Is_active == true)
                                                                           { <a href="@Url.Action("UserStatus", "Admin", new { id = @item.User_id })"><img src="../../images/Active.png"/></a> }
                                                                           else
                                                                           { <a href="@Url.Action("UserStatus", "Admin", new { id = @item.User_id })"><img src="../../images/Deactive.png"/></a> }</text>),
                               grid.Column(header: "Edit",
                                          format: @<text><a href="@Url.Action("EditeUser", "Admin", new { id = @item.User_id })"><img src="../../images/icons/editor.png" /></a></text>),
                               grid.Column(header: "Delete",
                                         format: @<text><a href="@Url.Action("DeleteUser", "Admin", new { id = @item.User_id })"><img src="../../images/icons/trash.png"/></a></text>)))

                                    </div>   
                              } 

                            </tbody>
                        </table> 
                      </form>                                                                     
                    </div> 

在这个视图中我有一个DRop下框和Onchange事件调用我的java sript来确定选择了哪个值并在发布到My Action结果方法后执行我的逻辑并返回查看但我的视图不是更改或webgrid未更新.. 所以请求帮助我..或者告诉我如何使用webgrid下拉列表来执行此功能

这是我的JAVASCRIPT

<script type="text/javascript" language="javascript">

function Count(value) 
{
    alert(value);

     $.post('@Url.Action("Pagesize","Admin")',
                    {
                        rowsPerPage: value                          
                    });             
}

这是我的行动结果方法:----

 [HttpPost]
    public ActionResult Pagesize(int rowsPerPage)
    {

        //if (rowsPerPage == 0)
        //{
        //   ViewBag.Pagesize = 3;                
        //}
        //else
        //{
        //    ViewBag.Pagesize = Convert.ToInt32(rowsPerPage);               
        //}

         ViewData["pagesize"] = rowsPerPage;

         //return View(db.User_Masters.ToList());  

        // return RedirectToAction("Userlist");    

         var u_master = db.User_Masters.ToList();


         return PartialView("OneRow",u_master);

    }

1 个答案:

答案 0 :(得分:0)

尝试以下方法,它工作正常,请更正您的表名称,如果指定..祝你好运!

在视图中:

 @using (Html.BeginForm())
             {
              <p>Some name to search: @Html.DropDownList("searchString", (IEnumerable<SelectListItem>)ViewBag.CurrentFilter, "-Select-", new {style = "width:200px;", onchange = "this.form.submit();" })
              </p>
             }
控制器中的

public ViewResult Viewname(string currentFilter, string searchString)
        {
            ViewBag.searchString = new SelectList(db.tablename, "Some name to search", "Some name to search");
            if (Request.HttpMethod == "GET")
            {
                searchString = currentFilter;
            }
            var Search = from objCampaign in db.tablename
                               join objClient in db.othertablenameon objCampaign.field equals objClient.field
                               select objCampaign;
            if (!String.IsNullOrEmpty(searchString))
            {
                Search = Search.Where(objsearch => objsearch.tablename.searchname.ToUpper().Contains(searchString.ToUpper()));
            }
            if (Search.Count() == 0)
            {
                TempData["infosearch"] = "No Client Found";
            }
            return View(Search.ToList());
        }
谢谢你 GorPedoC