我正在与这个相当复杂的问题作斗争,比如一个月。非常感谢任何帮助...
我需要在此表中插入一个条目(=技术人员列表):table。在表格下方是点击添加新记录后出现的编辑对话框。
添加新技术人员的条件:
问题现在出现了:
我试图在Create ActionResult中的控制器中描述它。在变量inseminacniTechnikDb中,我尝试查找技术人员是否已经存在,但它现在可以100%工作
[Permission]
[AcceptVerbs(HttpVerbs.Post)]
public async Task<ActionResult> InseminacniTechnikCreate([DataSourceRequest] DataSourceRequest request, InseminacniTechnikViewModel inseminacniTechnikViewModel)
{
using (dbSkotEntities db = new dbSkotEntities())
{
var inseminacniTechnikDb = db.jme_InseminacniTechnik
.FirstOrDefault(x => x.KodIT == inseminacniTechnikViewModel.KodIT
&& ((inseminacniTechnikViewModel.RegistraceOd < x.RegistraceOd || inseminacniTechnikViewModel.RegistraceOd > x.RegistraceDo) && (inseminacniTechnikViewModel.RegistraceDo < x.RegistraceOd || inseminacniTechnikViewModel.RegistraceDo > x.RegistraceDo)));
if (inseminacniTechnikDb == null)
{
ModelState.AddModelError("KodIT", resJmenovky.inseminacniTechnikInsertError);
}
if (inseminacniTechnikViewModel != null && ModelState.IsValid && inseminacniTechnikDb != null)
{
inseminacniTechnikService.Create(inseminacniTechnikViewModel);
}
}
return Json(await new[] { inseminacniTechnikViewModel }.ToDataSourceResultAsync(request, ModelState));
}
按照我的cshtml代码,我正在使用Telerik ASP-NET MVC UI网格:
@(Html.Kendo().Grid<eSkotWeb.Models.InseminacniTechnikViewModel>()
.Name("grid")
//.AutoBind(true)
.Columns(columns =>
{
columns.Command(command => { command.Custom("pdf").Click("ExportToPdf")/*.Action("ExportToPdf", "Jmenovky")*/; }).Title("PDF Export");
columns.Bound(p => p.KodIT);
columns.Bound(p => p.TitulPred);
columns.Bound(p => p.Jmeno);
columns.Bound(p => p.Prijmeni);
columns.Bound(p => p.TitulZa);
columns.Bound(p => p.RegistraceOd);
columns.Bound(p => p.RegistraceDo);
//columns.Bound(p => p.OrganizaceInsId);
//columns.Bound(p => p.StrediskoInsId);
columns.Bound(p => p.Poznamka);
columns.Command(command => { command.Edit(); command.Destroy(); }).Title("Upravit / Smazat");
})
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events
.Error("error_handler")
.Change("onRequestEnd")
)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
})
.Read(read => read.Action("InseminacniTechnikRead", "Jmenovky").Type(HttpVerbs.Post))
.Create(create => create.Action("InseminacniTechnikCreate", "Jmenovky").Type(HttpVerbs.Post))
.Update(update => update.Action("InseminacniTechnikUpdate", "Jmenovky").Type(HttpVerbs.Post))
.Destroy(destroy => destroy.Action("InseminacniTechnikDestroy", "Jmenovky").Type(HttpVerbs.Post))
.PageSize(10)
.Sort(sort => sort.Add("KodIT").Ascending())
)
.Editable(editable => editable.Mode(GridEditMode.PopUp).Window(x => x.Width(500)).DisplayDeleteConfirmation(true))
.Filterable(filter => filter.Mode(GridFilterMode.Menu))
.NoRecords("Žádný záznam nebyl nalezen...")
.Pageable(b => b
.ButtonCount(5)
.PageSizes(new[] { 5, 10, 20, 50 })
.Refresh(true)
)
.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
.ToolBar(toolBar => toolBar.Create())
)
@Html.ModalDialog("modalWarning", "Varování", null, new List<dialogButton>
{
new dialogButton() {caption = "Ok", id = "okButton", cssClass = "btn btn-primary btn-sm", dismiss = true}
}, "errMsg", webUIDialogType.warning, webUIDialogSize.middle)
<script>
function error_handler(e) {
if (e.errors) {
var message = "";
// Create a message containing all errors.
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
// Display the message.
showErrDialog(message);
}
}
function showErrDialog(message) {
var dlg = $('#modalWarning');
var msg = $('#errMsg', dlg);
msg.html(message);
dlg.modal('show');
}
</script>
数据存储在MsSql Db中。 Db表定义如下:
CREATE TABLE [dbo].[jme_InseminacniTechnik](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PlatnostOd] [datetime2](3) NOT NULL,
[RowVersion] [timestamp] NOT NULL,
[KodIT] [int] NOT NULL,
[RegistraceOd] [date] NOT NULL,
[RegistraceDo] [date] NULL,
[Prijmeni] [varchar](max) NULL,
[Jmeno] [varchar](max) NULL,
[TitulPred] [varchar](max) NULL,
[TitulZa] [varchar](max) NULL,
[OrganizaceInsId] [int] NULL,
[StrediskoInsId] [int] NULL,
[Poznamka] [varchar](max) NULL,
CONSTRAINT [pk_InseminacniTechnik] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[jme_InseminacniTechnik] ADD CONSTRAINT [DF_jme_InseminacniTechnik_PlatnostOd] DEFAULT (getdate()) FOR [PlatnostOd]
GO
ALTER TABLE [dbo].[jme_InseminacniTechnik] WITH CHECK ADD CONSTRAINT [fk_InseminacniTechnik_OpravnenaOrganizaceId] FOREIGN KEY([OrganizaceInsId])
REFERENCES [dbo].[jme_OpravnenaOrganizace] ([Id])
GO
ALTER TABLE [dbo].[jme_InseminacniTechnik] CHECK CONSTRAINT [fk_InseminacniTechnik_OpravnenaOrganizaceId]
GO
ALTER TABLE [dbo].[jme_InseminacniTechnik] WITH CHECK ADD CONSTRAINT [fk_InseminacniTechnik_StrediskoInsId] FOREIGN KEY([StrediskoInsId])
REFERENCES [dbo].[cis_Stredisko] ([Id])
GO
ALTER TABLE [dbo].[jme_InseminacniTechnik] CHECK CONSTRAINT [fk_InseminacniTechnik_StrediskoInsId]
GO