因此,这里有管理员菜单列表,在这些菜单下有上载新闻。单击此特定菜单后,我将称其为局部视图,如下所示。
$("#body_data").load("/Admin/GetDailyNews", function () {
$("#dailyNews").dataTable({
"lengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]],
"columnDefs": [{ "targets": 3, "orderable": false }],
"pagingType": "full_numbers",
"oLanguage": { "sSearch": "" },
"deferRender": true
});
}
我在AdminController中的PartialViewResult如下:
[HttpGet]
public PartialViewResult GetDailyNews()
{
var context=new MyContext();
List<AVmodel.NewsEventsViewModel> model = new List<AVmodel.NewsEventsViewModel>();
List<news> news = (from n in context.news where n.stdate >= System.DateTime.Now orderby n.stdate descending select n).ToList();
foreach (var NEWS in news)
{
model.Add(new AVmodel.NewsEventsViewModel()
{
EDate = NEWS.stdate,
EDesc = NEWS.brief,
EName = Convert.ToString(NEWS.name),
NID = NEWS.nid
});
}
return PartialView("_UploadNews", model);
}
我的_UploadNews.cshtml如下
@model IEnumerable<MCB.Models.BusinessObjects.AVmodel.NewsEventsViewModel>
<table id="dailyNews" cellspacing="0" width="100%" class="table table-condensed table-hover table-responsive table-bordered order-column">
<thead>
<tr>
<th>Event Date</th>
<th>Event Name</th>
<th>Detailed News</th>
<th class="disabled">Actions</th>
</tr>
</thead>
<tbody>
@foreach (var news in Model)
{
<tr data-row="row_@news.NID">
<td>@news.EDate.Date.ToShortDateString()</td>
<td>@Convert.ToString(news.EName)</td>
<td>@Convert.ToString(news.EDesc)</td>
<td><button class="btn btn-primary" data-target="#editAddNews" data-toggle="modal" onclick="javascript: EditNews(this);" data-info="data_@news.NID"><span class="fa fa-edit"></span> </button> <button class="btn btn-danger" onclick="javascript: DeleteNews(this);" data-info="data_@news.NID"><span class="fa fa-trash-o"></span></button></td>
</tr>
}
</tbody>
</table>
所以到现在为止还不错。一切进展顺利,表格仅显示未来的新闻。现在,管理员可以选择从表格中获取整个新闻集,包括过去的日子。所以我在我的局部视图中保留了一个复选框,如下所示,它是一个
引导程序开关类型 :
<input type="checkbox" name="fetchNews-checkbox" data-on-text="All News" data-off-text="Upcoming News" data-on-color="primary" data-off-color="default" data-label-width="100px" data-label-text="News details">
并且我onswitchchange
为该特定复选框写了一个,如下所示:
$("[name='fetchNews-checkbox']").on('switchChange.bootstrapSwitch', function (event, state) {
if (state)
{
fetchNews('all');
}
else
{
fetchNews('upcoming');
}
});
我的fetchNews
功能如下:
function fetchNews(context)
{
if(context!="")
{
$("#dailyNews").dataTable({
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "/Admin/FetchNews"
});
}
}
当这个函数被调用时,我得到一个警告,上面写着
DataTables警告:表id = dailyNews-无法重新初始化DataTable。有关此错误的更多信息,请参见
http://datatables.net/tn/3
我访问了上述链接,但一无所知。谁能告诉我, 如何调用控制器json方法并将新闻列表呈现到此表中?
错误消息http://datatables.net/tn/3准确说明了该问题。您正在使用中的其他选项重新初始化表格fetchNews()
。
您需要先销毁该表,请参阅http://datatables.net/manual/tech-
notes/3#destroy
。您可以使用$("#dailyNews").dataTable().fnDestroy()
(DataTables
1.9.x)或$("#dailyNews").DataTable().destroy()
(DataTables 1.10.x)进行此操作。
function fetchNews(context)
{
if(context!="")
{
// Destroy the table
// Use $("#dailyNews").DataTable().destroy() for DataTables 1.10.x
$("#dailyNews").dataTable().fnDestroy()
$("#dailyNews").dataTable({
// ... skipped ...
});
}
}
另外,如果您使用的是DataTables 1.10.x,则可以使用附加选项初始化新表"destroy": true
,请参见下文。
function fetchNews(context)
{
if(context!="")
{
$("#dailyNews").dataTable({
"destroy": true,
// ... skipped ...
});
}
}
问题内容: 成功的ajax调用后,我正在尝试重新初始化猫头鹰轮播。Ajax调用将更改数据,但视图应保持不变。我遇到了视图轮播结构无法重新初始化的问题。我不知道我在哪里犯错了。 Ajax请求 控制器功能 视图 问题答案: 根据您的代码,我进行更改,请应用此代码,希望此代码能正常工作。
我正在编程服务,从数据库中获取数据,并通过REST服务提供这些数据。它使用spring mvc。我的数据库连接配置在属性文件中,在上下文初始化期间,spring将其作为数据源bean从中加载。 现在我的问题是-我想更改属性文件中的配置(例如更改数据库信息),但我无法重新启动应用程序服务器,因此无法加载新配置。 如何重新初始化Spring上下文或一些特定的bean,以便使用新定义的属性?
问题内容: 是否可以在运行时重新初始化Spring Bean? 我的Bean使用静态设置,在某些情况下会更改,然后我必须重新初始化Bean。 问题答案: 你可以通过三种方法在spring上下文中更新单例bean,可以选择一种适合你的用例: 在Bean中重新加载方法在Bean中 创建一个方法,该方法将更新/重新加载其属性。根据你的触发器,从spring上下文访问bean,然后调用reload方法更新
我的Bean使用静态设置,在某些情况下,这些设置会改变,然后我必须重新初始化Bean。
所以我尝试了以下方法,结果成功了: 我不知道为什么第二个代码片段可以工作,而第一个却不行。有人能帮我理解一下吗?
我有不使用Flyway的现有数据库postgres,我需要复制它。如何将现有数据库状态移动到新的空数据库?我没有任何迁移sql。所以我期待像Liquibase中的GenerateChangelog这样的命令,但在Flyway中似乎没有这样的命令。