2012-08-07 3 views
0

2 개의 WebGrid가 있습니다. SelectedRow 속성을 사용하고 싶습니다. 첫 번째 WebGrid에서는 잘 작동하지만 두 번째 WebGrid에서는 제대로 작동하지 않습니다.webgrid 선택된 행 MVC 3

@model IEnumerable<RolesMVC3.Models.ESTUDENT> 

@{ 
    ViewBag.Title = "Index"; 
    WebGrid grid = new WebGrid(Model); 
} 

<h2>Index</h2> 
@using (Html.BeginForm()) 
{ 

@grid.GetHtml(fillEmptyRows: false, 
       alternatingRowStyle: "alternate", 
       headerStyle: "header", 
       tableStyle: "table", 
       selectedRowStyle: "selected", 
       mode: WebGridPagerModes.All, 
       columns: new[] { 
       grid.Column("IdEstudent", header: "ID"), 
       grid.Column("NameEstudent", header: "Name"), 
       grid.Column("LastNameEstudeNT", header: "Last Name"), 
       grid.Column("", header: " ",format:@<text>@item.GetSelectLink("SELECT")</text>) 
    }) 


    if (grid.HasSelection) 
    { 

     Html.RenderAction("Process", "Pass", new { id = grid.SelectedRow["IdEstudent"] }); 
    } 

} 

이 제 WebGrid (WebGrid 2)의 부분 도면이다 :

이 메인 뷰 (WebGrid 1), 여기서 상기 제 WebGrid 포함 부분도 불린다. WebGrid 2에는 레코드가 있지만 grid2.SelectedRow [ "IdConsultation"]가 NULL 인 이유는 무엇입니까? 아무것도 선택하지 않기 때문에

**Process.cshtml:** 

@model IEnumerable<RolesMVC3.Areas.Manager.Models.ConsViewModel> 
@{ 

    WebGrid grid2 = new WebGrid(Model); 
} 

@grid2.GetHtml(fillEmptyRows: false, 
       alternatingRowStyle: "alternate", 
       headerStyle: "header", 
       tableStyle : "table", 
       selectedRowStyle: "selected", 
       mode: WebGridPagerModes.All, 
       columns: new [] { 
       grid2.Column("IdConsultation", header: "Consultation"), 
       grid2.Column("Idregister", header: "Register"), 
       grid2.Column("", header: " ",format:@<text>@item.GetSelectLink("SELECT")</text>) 

    }) 


    @if (grid2.HasSelection) 
    { 

    <input type="hidden" id="Consultation" name="Consultation" value="@grid2.SelectedRow["IdConsultation"]"/> 
    Html.RenderAction("EstudianiatesCJ1", "Sustitucion"); 
    } 

축복

+0

도와주세요. 해결책을 찾지 못했습니다. – kalu

답변

0

grid2.SelectedRow ["IdConsultation"]은 NULL입니다. 원하는 경우 기본적으로 선택된 첫 번째 행을 설정해야합니다.

0

메신저는 현재 다음 JS 코드와 자바 스크립트에 의해 선택을 사용 :

$(document).on('click', '#selectBtn', function() { 
     var tr = $(this).closest('tr'); 
     tr.addClass('info').siblings().removeClass('info'); 
     /*Here you can send selection to controller */ 

     return false; 
    }); 

희망이 도움이!

관련 문제