En renvoyant une valeur de Kendo dans la liste déroulante
Résolu: je me suis contenté de modifier les propriétés de datatextfield et la DataValueField à la fois "Type" et de cette façon, quand je suis rentré .val (), il m'a donné exactement le même champ que le texte.
Je suis en train de renvoyer une valeur à mon Contrôleur de la vue à partir d'un Kendo dans la liste déroulante de l'index sélectionné à l'aide de script.
Jusqu'à présent, je ne peut le faire retourner la valeur de l'indice et pas le texte.
Problème côté: Aussi distinctes ne fonctionne pas dans le contexte actuel, si je supprime le .DataValueField de la vue ainsi que de prendre de l'ID de Produit à partir de mon DTO et Contrôleur je peux obtenir les valeurs distinctes de juste le .Propriétés De Datatextfield("Type").
Problème principal: est que nom: $("#typeDropDownList").val() est seulement saisissant la référence du produit (comme il se doit) et si j'essaie de le faire saisir par .texte() à la place il me donne un "" (chaîne vide) comme un résultat à chaque fois. Je me demande comment je peux prendre juste la valeur de texte de la liste déroulante.
Elle sera mise à jour d'un Kendo Grille.
Je suis assez nouveau dans la programmation et je suis en stage, allez facile sur moi s'il vous plaît.
Voici mon point de Vue
<h2>Products</h2>
@(Html.Kendo().DropDownList()
.Name("typeDropDownList")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("Type")
.DataValueField("ProductID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetList", "AdvSlider")
.Data("refresh");
})
.ServerFiltering(true);
})
.OptionLabel("Select a type")
.Events(e => e.Change(
@<text>
function(e){
$("#grid").data("kendoGrid").dataSource.read();
}</text>
))
)
@(Html.Kendo().Grid<SKLiqPOC.Models.PatDTO>()
.Name("grid")
.DataSource(dataSource => dataSource //Configure the grid data source
.Ajax() //Specify that ajax binding is used
.ServerOperation(false)
.Read(read => read.Action("GetJson", "AdvSlider")
.Data("refresh"))
//Set the action method which will return the data in JSON format
.PageSize(20)
)
.Columns(columns => {
//columns.Bound("Name");
columns.Bound(a => a.ProductID).Filterable(false).Width(100);
columns.Bound(a => a.Description);
columns.Bound(a => a.ProductName).Width(160);
columns.Bound(a => a.Manufacturer).Width(160);
columns.Bound(a => a.Price).Format("{0:C}").Width(130);
})
.Pageable() //Enable paging
.Sortable() //Enable sorting
.Filterable() //Enable filtering
.Scrollable()
.HtmlAttributes(new { style = "height:430px;" })
)
<script>
function refresh()
{
return {
name: $("#typeDropDownList").val()
};
};
</script>
Voici mon contrôleur
namespace SKLiqPOC.Controllers
{
public class AdvSliderController : Controller
{
private SKLIQContext db = new SKLIQContext();
public ActionResult Index()
{
return View();
}
public ActionResult GetList()
{
IQueryable<ddlDTO> dtoQuery = (
from name in db.t_prdct_fmly
join product in db.t_prdct on name.prdct_fmly_sys_key_id equals product.prdct_fmly_sys_key_id
join nameCat in db.t_prdct_fmly_ctgy on name.prdct_fmly_sys_key_id equals nameCat.prdct_fmly_sys_key_id
join type in db.t_prdct_ctgy on nameCat.prdct_ctgy_sys_key_id equals type.prdct_ctgy_sys_key_id
where !product.excl_fr_srch
select new ddlDTO
{
Type = type.shrt_descr,
ProductID = product.prdct_fmly_sys_key_id
}).Distinct();
return Json(dtoQuery, JsonRequestBehavior.AllowGet);
}
public ActionResult GetJson([DataSourceRequest]DataSourceRequest request, string name)
{
IEnumerable<PatDTO> dtoQuery = GetItems(name);
if (dtoQuery.Count() <= 0) //If no items are found add a message in the grid stating such
dtoQuery = new PatDTO[1] { new PatDTO { ProductName = "No Items Found" } };
DataSourceResult result = dtoQuery.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
public IQueryable<PatDTO> GetItems(string query)
{
IQueryable<PatDTO> dtoQuery =
from product in db.t_prdct
join name in db.t_prdct_fmly on product.prdct_fmly_sys_key_id equals name.prdct_fmly_sys_key_id
join type in db.t_prdct_ctgy on product.prdct_typ_cd equals type.prdct_ctgy_sys_key_id
join country in db.t_cntry_orig on product.cntry_orig_cd equals country.cntry_orig_sys_key_id
join region in db.t_regn_orig on product.regn_orig_cd equals region.regn_orig_sys_key_id
where !product.excl_fr_srch
&& type.shrt_descr.ToLower().Contains(query.ToLower())
select new PatDTO
{
ProductID = product.prdct_fmly_sys_key_id,
Price = product.retl_price,
ProductName = product.t_prdct_fmly.prdct_fmly_nm,
Manufacturer = name.mnfct_nm,
Description = name.mrkt_nrtv
};
return dtoQuery;
}
}
}
et aussi mon DTO
namespace SKLiqPOC.Models
{
public class ddlDTO
{
public string Type { get; set; }
public int ProductID { get; set; }
}
}
OriginalL'auteur user2441005 | 2013-06-13
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la valeur de texte par le biais de la texte propriété comme cela:
OriginalL'auteur Bill Hayden