我希望能够在读取(刷新)后从我的Kendo网格中推送记录数.
这是我的剑道网格:
@(Html.Kendo().Grid(Model)
.Name("SearchWindowGrid")
.Columns(columns =>
{
columns.Bound(p => p.SYSTEM_ITEMS_SEGMENT1).Hidden();
})
.ClientRowTemplate(
"<tr>" +
"<td>" +
"<span><b>#: SYSTEM_ITEMS_SEGMENT1#</b></span> <br/>" +
"<span>#: DESCRIPTION# </span>" +
"</td>" +
"</tr>"
)
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("PopulateSearchWindow", "Item").Data("additionalSearchWindowInfo"))
.Events(ev => ev.Error("onErrorSearchWindow"))
)
.Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
.Scrollable(s => s.Enabled(true).Height(450))
)
Run Code Online (Sandbox Code Playgroud)
我的控制器动作:
public ActionResult PopulateSearchWindow([DataSourceRequest] DataSourceRequest request, string option, string searchText, string searchDesc)
{
try
{
var derps= _idg.SearchItems(searchText, searchDesc, _adg.OrganizationCode).ToList();
return Json(derps.ToDataSourceResult(request, ModelState));
}
catch (Exception e)
{
ModelState.AddModelError("ExceptionErrors", e.Message);
return Json(new List<Derp>().ToDataSourceResult(request, ModelState)); …Run Code Online (Sandbox Code Playgroud) 我有一个看似相当简单的问题(当然,如果你知道答案).
我调用了另一个函数的某个函数但是我想继续从调用者执行,即使被调用者抛出异常.让我给你举个例子:
something function1()
{
try
{
//some code
int idNumber = function2();
//other code that need to execute even if function2 fails
return something;
}
catch(Exception e)
{//... perhaps something here}
}
Run Code Online (Sandbox Code Playgroud)
编辑:function1也有一个return语句,所以事实上没有任何东西可以崩溃
在function2中我需要做的事情,但我只需要记录是否有任何失败,例如:
int function2()
{
try
{
//dostuff
}
catch(Exception e)
{
//Log stuff to db
}
}
Run Code Online (Sandbox Code Playgroud)
好的,现在我的问题是,如果我想在function1中继续执行,即使函数2抛出错误,我该怎么办?
如果我应该扔掉,有时我会混淆; 或扔e; 或者什么都不扔(留下挡块空)
我希望能够使用自定义jquery对话框,或者至少能够在Ajax.Beginform函数中使用AjaxOptions.Confirm属性时将按钮的文本从OK/Cancel更改为其他内容.像这样:
<div>
@using (Ajax.BeginForm("Function", "Controller", new { id = theId }, new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "theForm",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "iconGif",
OnBegin = "OnBegin",
OnFailure = "OnFailure",
OnSuccess = "OnSuccess",
Confirm = "Are you sure?" //TODO: Confirm with different dialog?
}, new { id = "feedback-form" }))
{
//Some stuff
<button onclick="derp()">Submit</button>
}
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法通过AjaxOptions.Confirm属性使用Ajax.Beginform实现这一点?
我试图在MVC项目中使用javascript渲染url动作.我在我的页面上捕获了一个调用此函数的事件,但我不知道如何调用此特定URL.
有人可以帮我吗?:)
function onDropDownChange(e) {
var url = '/Home/Index/' + e.value;
//What now...?
}
Run Code Online (Sandbox Code Playgroud)
-----------编辑-----------------------
这是我的控制器动作:
public ActionResult Index(int? id)
{
var tmpToday = DateTime.Now;
var today = new DateTime(tmpToday.Year, tmpToday.Month, tmpToday.Day, 0, 0, 0);
if (id != null)
{
var num = id.GetValueOrDefault();
var rentableUnits = new List<Unit>();
_unitLogic.GetAllRentableUnitsByArea(num, rentableUnits);
var allAvailabilities = new ShowAvailability[rentableUnits.Count];
for (int i = 0; i < rentableUnits.Count; i++)
{
var sTime = GetFirstDayOfMonth(today);
var eTime = GetLastDayOfMonth(today);
allAvailabilities[i] = new ShowAvailability(sTime, eTime.AddHours(23.0).AddMinutes(59.0), rentableUnits); …Run Code Online (Sandbox Code Playgroud) 我希望能够调用一个将Kendo网格滚动到所选行的函数.我已经尝试了一些方法,但没有一个方法有效,
比如我试过这个:
var grid = $("#Grid").data("kendoGrid"),
content = $(".k-grid-content");
content.scrollTop(grid.select());
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
var gr = $("#Grid").data("kendoGrid");
var dataItem = gr.dataSource.view()[gr.select().closest("tr").index()];
var material = dataItem.id;
var row = grid.tbody.find(">tr:not(.k-grouping-row)").filter(function (i) {
return (this.dataset.id == material);
});
content.scrollTop(row);
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?:)
---编辑---
由于其他原因,我无法绑定到更改事件,因此我必须能够调用函数将列表滚动到所选行.这就是我试着用@Antonis为我提供的答案.
var grid = $("#Grid").data("kendoGrid")
grid.element.find(".k-grid-content").animate({
scrollTop: this.select().offset().top
}, 400);
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,它在列表中向下滚动但不向所选行滚动.我通过调用scrollTop以错误的方式使用网格对象吗?
这个也是:
var grid = $("#ItemGrid").data("kendoGrid");
grid.scrollToSelectedRow = function () {
var selectedRow = this.select();
if (!selectedRow) {
return false;
}
this.element.find(".k-grid-content").animate({
scrollTop: selectedRow.offset().top
}, 400);
return true;
};
grid.scrollToSelectedRow();
Run Code Online (Sandbox Code Playgroud) 我一直在努力使我的Kendo Datepicker没有用户文本输入,我提出的唯一解决方案就是将标签设为"readonly".但是我希望能够使用鼠标从选择器中选择日期,而无法直接将文本输入到选择器,因此使得日期选择器只能读取但可选择.
有什么想法?
<div>
@(Html.Kendo().DatePicker()
.Start(CalendarView.Year)
.Name("DatePicker")
.Value(DateTime.Now.AddDays(-365))
.Max(DateTime.Now)
.HtmlAttributes(new { style = "width: 125px;" })
.Events(e => e.Change("onDateChange")))
</div>
Run Code Online (Sandbox Code Playgroud) asp.net-mvc telerik asp.net-mvc-4 kendo-ui kendo-asp.net-mvc
我试图实现两级深度的Kendo小部件,但是Razor引擎一直在抱怨:"内联标记块(@Content)不能嵌套.只允许一级内联标记."
有没有办法让Razor引擎将帮助器呈现两层深度?
我的代码示例:
@(Html.Kendo().TabStrip()
.Name("tabStrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("Strip1")
.Selected(true)
.Content(@<text>
@RenderPanelBar()
</text>);
tabstrip.Add().Text("Strip2")
.Content(@<text>
</text>);
})
)
@helper RenderPanelBar(){
@(Html.Kendo().PanelBar()
.Name("panelBar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar =>
{
panelbar.Add().Text("panel1")
.Expanded(true)
.Content(@<div>
<div>
@(Html.Kendo().Grid<GroupViewModel>()
.Name("GroupGrid")
.Columns(columns =>
{
columns.Bound(c => c.GroupID).Hidden();
columns.Bound(c => c.Name);
columns.Command(command => { command.Edit(); command.Destroy(); });
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Template(@<text>
@RenderDropDown() //<-- here the error occurs
</text>);
}
)
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Scrollable(s => s.Enabled(false))
.Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Group_Grid_Read", "Home")) …Run Code Online (Sandbox Code Playgroud) 有可能两个在jquery中结合两个html选择吗?
var derp1 = $('#derp1').html();
var derp2 = $('#derp2').html();
var combDerp = derp1.add(derp2);
$('#derpina').html(combDerp);
Run Code Online (Sandbox Code Playgroud)
我想将html的两个特定部分显示为一个,并将其显示在页面的另一部分中.任何帮助都很赞赏:)
我想将 Kendo Datepicker 本地化为我的文化“is-IS”,但由于某种原因它不能\xc2\xb4t 正常工作。这是代码示例:
\n\n$("#RegisterDatePicker").kendoDatePicker({\n start: "month",\n culture: "is-IS",\n value: new Date(),\n format: "dd.MMMM yyyy",\n events: {\n change: "registerDatePicker_OnChange"\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n该文化似乎恢复到其默认本地化“en-US”。我知道这种文化应该与 Datepicker 一起使用,因为每当我在 Razor 引擎中声明 Datepicker 时,它都会正确呈现。Here\xc2\xb4s 来自 Razor 的代码示例:
\n\n@(Html.Kendo().DatePicker()\n .Name("RegisterDatePicker")\n .Start(CalendarView.Month)\n .Value(DateTime.Now)\n .Format("dd.MMMM yyyy")\n .Events(e => e.Change("registerDatePicker_OnChange"))\n .Culture("is-IS")\n)\nRun Code Online (Sandbox Code Playgroud)\n\n谁能指出我的日期选择器的脚本声明有什么问题吗?
\n我希望能够使用ajax调用的结果来决定我将填充哪个Kendo Grid.如果我只在数组中收到一个项目,我想填充网格,否则我有多个项目的另一个网格.
我的jQuery
$.ajax({
type: "POST",
dataType: "json",
url: 'Item/GetItems/',
data: { number: number },
success: function (data) {
if (data.length == 1) {
var sGrid = $("#SingleGrid").data("kendoGrid").dataSource.data(data);
//I´ve also tried this
//sGrid.refresh();
}
else {
var mGrid = $("#MultipleGrid").data("kendoGrid").dataSource.data(data);
//I´ve also tried this
//mGrid .refresh();
}
},
error: function () {
}
});
Run Code Online (Sandbox Code Playgroud)
我的控制器动作
public ActionResult GetItems([DataSourceRequest] DataSourceRequest request, string number)
{
var items = _idg.GetItems(number);
return Json(items.ToDataSourceResult(request, ModelState));
}
Run Code Online (Sandbox Code Playgroud)
我一直在监控Firebug,它没有显示任何错误.我试图通过决定填充其中一个网格来阻止对服务器的第二次调用.有没有办法像这个客户端那样强制dataSource刷新?(不调用dataSource上的read函数,它将第二次调用服务器)
###### EDITED ########
function TestGrid() {
var dataSource …Run Code Online (Sandbox Code Playgroud) 我一直被困在一个小问题上,这可能只是我看不到的小问题.我有一个PartialView,我想能够检查一个复选框,它应该取消选中所有其他复选框.我只想在提交页面之前检查一个复选框.
无论如何,这是我的代码示例:
这是我的PartialView
@model List<int>
@foreach (var element in Model)
{
<div id="AddedProductImages">
<img src="@Url.Action("RetrieveFile", "File", new { id = element })" alt="@element" width="125px;" />
<input type="checkbox" name="PrimaryImage" onchange="PrimaryImageChkBox('@element')" id="PrimaryCheckbox'@element'"/>
</div>
}
Run Code Online (Sandbox Code Playgroud)
这是我的Jquery功能
我不能先取消选中,然后在第二行告诉点击复选框进行检查吗?
function PrimaryImageChkBox(id) {
alert(id);
$('input[name=PrimaryImage]').removeAttr("checked");
$('#PrimaryCheckbox' + id).attr('checked', "checked");
}
Run Code Online (Sandbox Code Playgroud)
先感谢您 :)
我在几周内使用SQL中的DATEPART进行分组.但是,我想要包括空周,不仅仅包括数周.我有一个脚本可以完美地收集数周的数据,但不是空的周.我一直试图使用左外连接,但我的SQL技能并不是那么好.我决定问你们.
这是我的脚本:
select
DatePart(Year, MYTABLE.CREATION_DATE) as DateYear,
DatePart(Month, MYTABLE.CREATION_DATE) as DateMonth,
DatePart(Week, MYTABLE.CREATION_DATE) as DateWeek,
sum(cast(MYTABLE.BASE_TRANSACTION_VALUE as int)) as Value,
min(MYTABLE.CREATION_DATE) as DateT
from MYTABLE
where MYTABLE.SEGMENT2 like '00601'
and MYTABLE.SEGMENT4 like '%'
and MYTABLE.CREATION_DATE > '2012-12-30 12:00:00'
and MYTABLE.CREATION_DATE < '2013-12-30 11:00:00'
group by
DatePart(Year, MYTABLE.CREATION_DATE),
DatePart(Month, MYTABLE.CREATION_DATE),
DatePart(Week, MYTABLE.CREATION_DATE)
order by DateYear, DateMonth, DateWeek
Run Code Online (Sandbox Code Playgroud)
这是该脚本的结果.

在这种情况下,你们可以给我一个加入条款的例子吗?
有没有办法用两个单词(或更多)创建一个where语句,但它们与给出的单词的顺序不一样?
select
i.ITEM_NUMBER as Item,
min(i.ITEM_DESCRIPTION) as Description,
i.ORGANIZATION_CODE as Org,
max(m.MANUFACTURER_NAME) as Manufacturer,
max(m.MANUFACTURERS_PARTNUMBER) as Partnumber
from mis.XXEAM_INVENTORY_REPORT_WITH_LOCATORS_CONSIGNED_MATERIAL_AND_CATEGORIES_TBL i
left outer join
mis.XXEAM_MANUFACTURING_PART_NUMBERS_TBL m on i.ITEM_NUMBER = m.ITEM_NUMBER
where
i.ITEM_DESCRIPTION like '%ALLEN BRADLEY%PLC%'
group by i.ORGANIZATION_CODE, i.ITEM_NUMBER
Run Code Online (Sandbox Code Playgroud)
我想在上面的描述文本中搜索'%ALLEN BRADLEY%PLC%'或'%PLC%ALLEN BRADLEY%'.我想避免使用OR语句,因为数据集很大并且查询可能需要很长时间.
通配符可以超过两个,我只以这两个为例.在我看来,我会更喜欢为第一个单词获取数据集,然后从该数据集中获取第二个单词.也许唯一的方法是选择进入临时表.
asp.net-mvc ×9
jquery ×7
kendo-ui ×6
razor ×5
kendo-grid ×3
javascript ×2
sql ×2
sql-server ×2
ajax ×1
c# ×1
culture ×1
razorengine ×1
sql-like ×1
telerik ×1
try-catch ×1
wildcard ×1