2013-03-06 17 views
0

我已經在Webgrid上創建了一個Drop Downbox,如果用戶從下拉框中選擇任何值,我的webgrid會更改每頁的行,所以...但它不工作正確的和我的WebGrid沒有更新 所以請給我暗示,以實現它.. 這是我Code..here VIEW .... CODE如何使用Webgrid上方的下拉框實現每頁行,並更新webgrid每個選定的值

<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); 

    } 
+0

我沒有看到你的代碼中的任何的DropDownList。 – 2013-03-06 08:05:47

+0

每頁記錄: - – 2013-03-06 09:47:18

+0

在上一行顯示上面的代碼視圖..請仔細閱讀。 – 2013-03-06 09:47:47

回答

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