首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于视图上的datepicker过滤部分视图中的数据

基于视图上的datepicker过滤部分视图中的数据
EN

Stack Overflow用户
提问于 2011-03-06 19:26:27
回答 1查看 750关注 0票数 0

我已经在MVC视图中添加了一个jquery datepicker。此视图具有局部视图。我需要根据datepicker选择的日期过滤我的局部视图。我需要在部分视图上显示基于日期的按钮。

我添加了这样的局部视图:

代码语言:javascript
运行
复制
<div id="dvGames" class="cornerdate1"> 
    <% Html.RenderPartial("Partial3"); %>                          
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-10 01:38:04

这里有几个问题需要解决:

  1. 你需要一个强类型的局部视图,这样你才能传入正确的数据。现在您没有向局部视图传递模型,所以我假设它不是强类型的。
  2. 您需要有一个控制器操作来填充所选日期的模型,并将其传递给局部视图。
  3. 当选定日期时,您需要一些javascript (即jquery)来请求更新局部视图div。

您的jquery将如下所示:

代码语言:javascript
运行
复制
$("#myDatePicker").datepicker({
  onSelect: function(dateText, inst) {
    $("#dvGames").load('/Home/Partial3/' + dateText');
  }
});

您的控制器操作将如下所示:

代码语言:javascript
运行
复制
public ActionResult Partial3(DateTime? id)
{
    MyModel model = new MyModel();
    // Populate model
    return PartialView(model);
}

请记住,只有当您的站点位于根目录中时,"/Home/Partial3/“才是路径。您应该使用Url.Action来确定实际路径。通常,我使用Ajax.BeginForm (您可以在上面找到很多示例)代替jquery.load,然后使用jquery在表单上调用onsubmit。通过这种方式,我的MVC标记在Ajax.BeginForm的参数中定义了分部视图的URL,然后我的jquery代码是完全可移植的,因为它只提交一个特定的表单,而不需要知道任何关于路径的信息。您要转换为datepicker的输入标记必须位于Ajax.BeginForm定义的表单内,以便将其提交给操作。您的局部视图不需要位于表单内部。只需指定"dvGames“作为UpdateTargetId,Ajax调用的结果将放在您的div中。

这个jquery看起来像这样:

代码语言:javascript
运行
复制
$("#myDatePicker").datepicker({
  onSelect: function(dateText, inst) {
    $(this).closest('form').trigger('onsubmit');
  }
});

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5210185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档