是否可以将click事件中的值传递给ListView SelectMethod?

时间:2018-05-31 19:37:58

标签: c# asp.net listview

我有一个第三方日历控件,名为Day Pilot Calendar,它有一个EventClickHandling事件,当我点击日历中的某个事件时,它会进行回发。当我点击一个事件时,我想在列表视图中显示有关该事件的详细信息。事件的详细信息(ID,名称,开始/结束日期)存储在数据库表中。对于每个活动,有一个或两个学校科目(如数学考试,英语考试),存储在另一个表格中。我想要实现的是,当我点击一个事件时,我得到了EventID并希望将它传递给ListView,在那里我可以与Subjects表中的SubjectID进行比较,以获得关于主题的每个细节。我的问题是,我不知道如何将一个值从EventClick方法传递给listview SelectMethod,或者甚至是否可能。

我已设法通过下拉列表以这种方式执行此操作:

public IQueryable<Subject> GetEventDetails([Control] int ddlEvents)
    {

        var _db = new School.Models.SchoolContext();
        IQueryable<Subject> query = _db.Subjects;

        query = query.Where(p => p.SubjectID == ddlEvents);

        return query;
    }

是否可以使用click事件中的值来执行此类操作?

编辑:我被要求清除一些内容并添加更多详细信息:

我有Event类:

    public int EventID { get; set; }
    public string EventName { get; set; }
    public string StartDate { get; set; }
    public string EndDate { get; set; }
    public string Notes { get; set; }
    public int Subject Subject {get; set;}

我有主题类:

    public int SubjectID { get; set; }
    public string SubjectName { get; set; }
    public string SubjectRoom { get; set; }
    public ICollection<Event> Events { get; set; }

这就是DayPilotCalendar EventClick方法在没有任何特定代码的情况下的样子:

protected void DayPilotCalendar1_EventClick(object sender, DayPilot.Web.Ui.Events.EventClickEventArgs e)
    {
       <code here>
    }

这是我想象的,但这是完全错误的,可能是愚蠢的:

public IQueryable<Subject> GetEventDetails([Control] int ValueFromClickEvent)
    {

        var _db = new School.Models.SchoolContext();
        IQueryable<Subjects> query = _db.Subjects;

        query = query.Where(p => p.SubjectID == ValueFromClickEvent);

        return query;
    }

日历的实施:

<DayPilot:DayPilotCalendar ID="DayPilotCalendar1" runat="server" SelectMethod="GetEvents" DataEndField="EndDate" DataStartField="StartDate" DataTextField="EventName" DataValueField="EventID" Days="7" TimeFormat="Clock24Hours" EventClickHandling="PostBack" OnEventClick="DayPilotCalendar1_EventClick" StartDate="2018-05-30" />

填充日历:

public IQueryable<Event> GetEvents()
    {
        var _db = new School.Models.SchoolContext();
        IQueryable<Event> query = _db.Events;
        return query;
    }

0 个答案:

没有答案