从 Linq 设置 Kendo 组合框默认值
Setting Kendo combobox default value from Linq
我是 Kendo UI 的新手,我已经搜索了我想做的事情,但没有任何运气。我有一个充满财政年度的组合框。我想 select 默认情况下当前的一个,它在组合框中并不总是处于同一级别。我们在数据库中有一个字段,当它是当前年份时设置为 0。我想将 0 中的任何一个字段作为我的默认值。
这是我控制器中的相关代码。当前未使用 defaultValue 变量。我曾尝试用它做一些事情但没有成功,我把它放在那里是因为它清楚地显示了我正在努力完成的事情。
public JsonResult ListeAnneeFinanciere()
{
var dimtempsdate = new DimTempsDateViewModel();
try
{
using (var db = new ParcAutoDbContext())
{
var resultat = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT })
.Distinct()
.OrderByDescending(a => a.ANNEE_FINANCIERE_ID)
.ToList();
var defaultValue = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT })
.Distinct()
.Where(a => a.CLASSEMENT == 0)
.OrderByDescending(a => a.ANNEE_FINANCIERE_ID)
.ToList();
return Json(resultat, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
Log.Instance.Error(ex, message: "Erreur : ListeAnneeFinanciere");
throw new HttpException((int) HttpStatusCode.InternalServerError, message: "500 - Internal Server Error");
}
}
这是我认为的相关代码。我知道我需要将默认值设置为 属性。我可以对其进行硬编码,但这不是我想要的。我也在 Databound 事件中尝试了一些东西但没有成功。老实说,我真的不知道要尝试什么。
<div class="form-group">
<label class="control-label col-xs-3">Année financière</label>
<div class="col-md-4 col-xs-9">
@{
Html.Kendo().ComboBox()
//.Events(e => e.DataBound("setDefaultYear"))
.Name("AnneeFinanciere")
.Placeholder("Sélectionner une année financière")
.NoDataTemplate("Aucune donnée")
.DataTextField("ANNEE_FINANCIERE_ID")
.DataValueField("ANNEE_FINANCIERE_ID")
.AutoBind(true)
.Suggest(true)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ListeAnneeFinanciere", "Operation");
})
.ServerFiltering(true);
})
//.Value("2017-2018")
.HtmlAttributes(new { @style = "width:100%" })
.Render();
}
</div>
</div>
我知道这一定没那么难,但我是 Kendo UI 的初学者,还没有尝试过 MVC。英语不是我的第一语言,但我希望我的问题很清楚,并且有人能够帮助我。
非常感谢您的宝贵时间。
从上面的示例代码中可以看出,DataTextField
和 DataValueField
都是 ANNEE_FINANCIERE_ID
- 我不确定您是否正确地开始了数据集,您可能需要先检查一下, 即
假设ANNEE_FINANCIERE_ID
是值字段,CLASSEMENT
是文本字段,您可以通过传入默认数据var default = new {ANNEE_FINANCIERE_ID=0, CLASSEMENT="default"}
作为控制器的视图数据来设置默认值到视图。
html.Kendo().ComboBox()
.Name("AnneeFinanciere")
.Placeholder("Sélectionner une année financière")
.NoDataTemplate("Aucune donnée")
.DataTextField("CLASSEMENT")
.DataValueField("ANNEE_FINANCIERE_ID")
.AutoBind(true)
.Suggest(true)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ListeAnneeFinanciere", "Operation");
})
.ServerFiltering(true);
})
.Value(ViewData["defaultClassement"])
.HtmlAttributes(new { @style = "width:100%" })
.Render();
我是 Kendo UI 的新手,我已经搜索了我想做的事情,但没有任何运气。我有一个充满财政年度的组合框。我想 select 默认情况下当前的一个,它在组合框中并不总是处于同一级别。我们在数据库中有一个字段,当它是当前年份时设置为 0。我想将 0 中的任何一个字段作为我的默认值。
这是我控制器中的相关代码。当前未使用 defaultValue 变量。我曾尝试用它做一些事情但没有成功,我把它放在那里是因为它清楚地显示了我正在努力完成的事情。
public JsonResult ListeAnneeFinanciere()
{
var dimtempsdate = new DimTempsDateViewModel();
try
{
using (var db = new ParcAutoDbContext())
{
var resultat = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT })
.Distinct()
.OrderByDescending(a => a.ANNEE_FINANCIERE_ID)
.ToList();
var defaultValue = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT })
.Distinct()
.Where(a => a.CLASSEMENT == 0)
.OrderByDescending(a => a.ANNEE_FINANCIERE_ID)
.ToList();
return Json(resultat, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
Log.Instance.Error(ex, message: "Erreur : ListeAnneeFinanciere");
throw new HttpException((int) HttpStatusCode.InternalServerError, message: "500 - Internal Server Error");
}
}
这是我认为的相关代码。我知道我需要将默认值设置为 属性。我可以对其进行硬编码,但这不是我想要的。我也在 Databound 事件中尝试了一些东西但没有成功。老实说,我真的不知道要尝试什么。
<div class="form-group">
<label class="control-label col-xs-3">Année financière</label>
<div class="col-md-4 col-xs-9">
@{
Html.Kendo().ComboBox()
//.Events(e => e.DataBound("setDefaultYear"))
.Name("AnneeFinanciere")
.Placeholder("Sélectionner une année financière")
.NoDataTemplate("Aucune donnée")
.DataTextField("ANNEE_FINANCIERE_ID")
.DataValueField("ANNEE_FINANCIERE_ID")
.AutoBind(true)
.Suggest(true)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ListeAnneeFinanciere", "Operation");
})
.ServerFiltering(true);
})
//.Value("2017-2018")
.HtmlAttributes(new { @style = "width:100%" })
.Render();
}
</div>
</div>
我知道这一定没那么难,但我是 Kendo UI 的初学者,还没有尝试过 MVC。英语不是我的第一语言,但我希望我的问题很清楚,并且有人能够帮助我。
非常感谢您的宝贵时间。
从上面的示例代码中可以看出,DataTextField
和 DataValueField
都是 ANNEE_FINANCIERE_ID
- 我不确定您是否正确地开始了数据集,您可能需要先检查一下, 即
假设ANNEE_FINANCIERE_ID
是值字段,CLASSEMENT
是文本字段,您可以通过传入默认数据var default = new {ANNEE_FINANCIERE_ID=0, CLASSEMENT="default"}
作为控制器的视图数据来设置默认值到视图。
html.Kendo().ComboBox()
.Name("AnneeFinanciere")
.Placeholder("Sélectionner une année financière")
.NoDataTemplate("Aucune donnée")
.DataTextField("CLASSEMENT")
.DataValueField("ANNEE_FINANCIERE_ID")
.AutoBind(true)
.Suggest(true)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ListeAnneeFinanciere", "Operation");
})
.ServerFiltering(true);
})
.Value(ViewData["defaultClassement"])
.HtmlAttributes(new { @style = "width:100%" })
.Render();