comment Filtrer webgrid dans mvc4 basé sur la zone de texte de saisie et dropdownList d'entrée

Je suis encore dans la courbe d'apprentissage de mvc4 . Je sais comment faire pour lier un webgrid dans mvc4 . Mais mon doute est quelqu'un peut-il partager de moi l'idée de comment lier webgrid basé sur des conditions de filtre de zone de texte d'entrée et de dropdownList d'entrée. Pour exemple : Si la zone de texte a une date "11/15/2013" et dropdownList a le médecin du nom de "Charles", alors j'ai besoin de le montrer dans gridview la liste des patients qui a rendez-vous avec le médecin de " charles ", "11/15/2013" .

code

 <div id="gridContent">
@grid.GetHtml(
fillEmptyRows: true,
tableStyle: "webGrid",
alternatingRowStyle: "alternate-row",
headerStyle: "grid-header",
footerStyle: "grid-footer",
mode: WebGridPagerModes.All,
firstText: "<< First",
previousText: "< Prev",
nextText: "Next >",
lastText: "Last >>",
columns: new[] {        
grid.Column("PatientID"),
grid.Column("PatientName"),
grid.Column("Age"),
grid.Column("DOB"),
grid.Column("Sex"),
grid.Column("Phone"),
grid.Column("Mobile"),
grid.Column("City"),
grid.Column("PinCode"),
//grid.Column("Dr_Remarks",header:"Remarks",style:"left"),
//grid.Column("Dr_Add1", 
//           header: "Bed Count",style:"right"
//),
grid.Column("", 
header: "Actions",
format: @<text> 
@Html.ActionLink("Edit", "EditPatient", new { id = item.PatientID }, htmlAttributes: new { @class = "link" })
|
@Html.ActionLink("Delete", "PatientList", new { id = item.PatientID },
htmlAttributes: new { @class = "link", onclick = "return confirm('Are you sure you wish to delete this record?');" })
</text>
)
})
</div>
**controller**
public ActionResult PatientList(int page = 1, string sort = "Dr_Id", string sortDir = "ASC", int id = 0)
{
if (id != 0)
{
bool isDelete = false;
isDelete = rdm_Patient.DeletePatient(id);
return View(GetPatient(page, sort, sortDir));
}
else
{
return View(GetPatient(page, sort, sortDir));
}
} 
private PatientPageViewModel GetPatient(int page = 1, string sort = "Dr_Id", string sortDir = "ASC")
{
const int patientPerPage = 5;
var numPatient = rdm_Patient.CountPatient();
sortDir = sortDir.Equals("desc", StringComparison.CurrentCultureIgnoreCase) ? sortDir : "asc";
var validColumns = new[] { "PatientID", "PatientName" };
if (!validColumns.Any(c => c.Equals(sort, StringComparison.CurrentCultureIgnoreCase)))
sort = "PatientID";
var doctors = rdm_Patient.getpatientpage(page, patientPerPage, "it." + sort + " " + sortDir);
var data = new PatientPageViewModel()
{
numberOfPatient = numPatient,
patientPerPage = patientPerPage,
Patient = doctors,
};
return data;
}

OriginalL'auteur Murugappan | 2013-11-15