Karthik
Karthik

Reputation: 207

Data not binding to Kendo dropdown list in mvc4

Data is not binding to Kendo dropdown list list is returning form my method My dropdown

  @(Html.Kendo().DropDownListFor(model => model.ParentAssetID)
       .OptionLabel(" ")
      .Name("ParentAssetID")
      .DataTextField("AssetName")
      .DataValueField("AssetId")
      .SelectedIndex(0)                    
      .Text(string.Empty)
      .DataSource(source =>
      {
          source.Read(read =>
          {
              read.Url("../Asset/GetAllAssetsByCompanyId");
          });
      }))

my Action Result

 public IEnumerable<AssetDetails> GetAllAssetsByCompanyId()
    {
        IList<AssetDetails> _assetSearchlist;
        using (var client = new HttpClient())
        {
            AssetRepository assetrep = new AssetRepository();
            Guid cp = new Guid(Session["CurrentCompanyId"].ToString());
            _assetSearchlist = assetrep.GetAllAssetsByCompanyId(cp, "", "", "");
            return _assetSearchlist;
        }
    }

Upvotes: 1

Views: 3084

Answers (2)

CSharper
CSharper

Reputation: 5590

public JsonResult GetOpportunityListByAccount(string Id)
    {
        Guid ID = new Guid(Id);
        List<OpportunityViewModel> cpvm = new List<OpportunityViewModel>();


         List<CrmOpportunity> crmOppList = new List<CrmOpportunity>();

           cpvm  = srv.OpportunitySet.Where(z => z.CustomerId.Id == ID).ToList();

           foreach (var crm in cpvm )
           {
               CrmOpportunity crmOpp = new CrmOpportunity();
               crmOpp.Id = crm.Id;
               crmOpp.Name = crm.Name;
               crmOppList.Add(crmOpp);
           }

            return Json(crmOppList, JsonRequestBehavior.AllowGet);
    }  


 @(Html.Kendo().DropDownListFor(x => x.FromOpportunity)    
     .Name("OpportunityDDL")                 
          .DataTextField("Name")              
          .DataValueField("Id")                         
          .DataSource(source => {
              source.Read(read =>
               {
                   read.Action("GetOpportunityListByAccount", "CrmIntegration");                          
               })
                . ServerFiltering(true);
          })     

          .HtmlAttributes( new { style = "margin-left:13px; width: 275px;" })
   )     

Data access is a little truncated but this is what you'll need to do

Upvotes: 2

Heberda
Heberda

Reputation: 820

@(Html.Kendo().DropDownListFor(model => model.ParentAssetID)
       .OptionLabel(" ")
      .Name("ParentAssetID")
      .DataTextField("AssetName")
      .DataValueField("AssetId")
      .SelectedIndex(0)                    
      .Text(string.Empty)
      .DataSource(source =>
      {
          source.Read(read =>
                  {
                      read.Action("GetAllAssetsByCompanyId", "Asset");
                  });
      }))

Only a minor change but have you tried read.Action? Also is maybe try removing the following;

DropDownListFor(model => model.ParentAssetID)

and replace with

DropDownListFor<ClassName>()

Only a thought.

Upvotes: 0

Related Questions