我有一个 webgridextensions 类,它为不同的场景定义了“WebGridColumn”返回..
public static WebGridColumn ApptLinksWSchedule(this WebGrid grid, HtmlHelper html)
{
return grid.Column(
header: "",
style: "actionColumn",
format: item => new HtmlString(
html.ActionLink("Schedule", "Schedule", new { ID = item.CourseExamApptID }, new { onclick = "return confirm('Are you sure you'd like to schedule this Appointment?');" }).ToString()
)
);
}
public static WebGridColumn ApptLinksWCancel(this WebGrid grid, HtmlHelper html)
{
return grid.Column(
header: "",
style: "actionColumn",
format: item => new HtmlString(
html.ActionLink("Edit", "Edit", new { ID = item.CourseExamApptID }).ToString() + " | " +
html.ActionLink("Delete", "Delete", new { ID = item.CourseExamApptID }).ToString() + " | " +
html.ActionLink("Cancel", "Cancel", new { ID = item.CourseExamApptID }, new { onclick = "return confirm('Are you sure you'd like to cancel this Appointment?');" }).ToString()
)
);
}
在我看来,我需要根据模型属性的值有条件地应用 htmlActionLinks。如果我的 model.AppointmentStatus = "Scheduled",则显示一组操作链接,如果不显示另一组...
<div class="webgrid-wrapper">
<div id="grid">
@grid.GetHtml(
tableStyle: "webgrid",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
columns: grid.Columns(grid.Column("StudentID", "SMUId"),
grid.Column("StudentName", "Name"),
grid.Column("CourseName", "Course"),
grid.Column("InstructorName", "Professor"),
grid.Column("ExamLength", "ExamLength"),
grid.Column("SchedExamBeginTime", "Time In"),
grid.Column("SchedExamEndTime", "Time Out"),
grid.Column("Notes", "Notes"),
grid.Column("AppointmentStatus", "Status"),
//THIS IS WHat I'd like to display in a column...
//if (model.AppointmentStatus == "Scheduled")
//{
// html.ActionLink("Edit", "Edit", new { ID = item.CourseExamApptID }).ToString() + " | " +
// html.ActionLink("Delete", "Delete", new { ID = item.CourseExamApptID }).ToString() + " | " +
// html.ActionLink("Cancel", "Cancel", new { ID = item.CourseExamApptID }, new { onclick = "return confirm('Are you sure you'd like to cancel this Appointment?');" }).ToString()
//}
//html.ActionLink("Schedule", "Schedule", new { ID = item.CourseExamApptID }, new { onclick = "return confirm('Are you sure you'd like to schedule this Appointment?');" }).ToString()
//THIS IS MY ORIGINAL CODE THAT WORKS with only needing same column and link for every record...
//grid.ApptLinksWCancel(Html)
)
)
</div>
我该如何做到这一点?
谢谢