sarpay
9/24/2018 - 2:04 PM

StdSelect2

ViewBag.BankaSubeKod = MyHelpers.BlankSelectList();

/* MyHelpers Function  */
public static SelectList BlankSelectList()
{
    return new SelectList(new List<SelectListItem> { new SelectListItem { Value = "", Text = "" } }, "Value", "Text", null);
}
@{
  var disabled = ViewBag.Mode == "Update" ? "true" : "false";
}
<div class="form-group">
  @Html.LabelFor(model => model.PolicyInsuredCoverageId, new { @class = "control-label col-md-2" })
  <div class="col-md-10">
    @if (ViewBag.Mode == "Create")
    {
      @Html.EditorFor(model => model.PolicyInsuredCoverageId, new { ViewBag.StdSelect2DataCoverage, ViewBagKey = "StdSelect2DataCoverage", @disabled })
    }
    else if (ViewBag.Mode == "Update")
    {
      @Html.HiddenFor(model => model.PolicyInsuredCoverageId)
      <label class="value-label">@Html.Raw(selectedCoverageText)</label>
    }
  </div>
</div>
[Display(Name = "K.M. Kod")]
[UIHint("StdSelect2")]
public string ExternalCode { get; set; }

View

$("#ProductId").on("select2:select", function () {

    var elemId = "PlanId";

    /* clear all current options */
    clearSelectOptions(elemId);

    /* repopulate option items */
    var requestData = {
        __RequestVerificationToken: __RequestVerificationToken,
        productId: $(this).val()
    };
    var xhrParams = {
        requestMethod: "POST",
        url: "@getPlansUrl",
        dataType: "json",
        data: requestData,
        formToValidateObj: null,
        blockElem: ".modal-content",
        iconOnly: false,
        message: "Yükleniyor...",
        unblockOnComplete: true
    };
    var xhrPromise = jqAjax(xhrParams);
    xhrPromise.success(function (responseData) {
        if (responseData.result.length > 0) {
            populateSelect2(elemId, responseData.result);
        }
    });

});

Controller

public async Task<JsonResult> GetHsrCorpAgreementTypes(string networkId)
{
  var hsrCorpAgreementTypes = await _productManager.GetHsrCorpAgreementTypes(networkId);
  var hsrCorpAgreementTypesCombo = 
      hsrCorpAgreementTypes.Select(
          x => new
          {
              Id = x.PriceProtocolCode, 
              Text = x.DisplayName
          }
  );
  return Json(hsrCorpAgreementTypesCombo);
}
/* Model */
public enum CoverageTotalLimitTypeEnum : byte
{
  [Description("Sigortalılık Süresince Toplam Limit")]
  DuringInsurancePeriod = 1,
  [Description("Dönem Yılı Süresince Toplam Limit")]
  DuringTheTermYear = 2
}

[Display(Name = "Toplam Limit Türü")]
[UIHint("StdSelect2")]
public CoverageTotalLimitTypeEnum? TotalLimitType { get; set; }


/* View */
@Html.EditorFor(model => model.TotalLimitType)


/* Controller */
ViewBag.TotalLimitType = 
  new SelectList(EnumHelper<CoverageTotalLimitTypeEnum>.GetSelectList(), "Value", "Text", planCoverage.TotalLimitType);
var policyInsuredCoverages = policy.Insureds.FirstOrDefault(x => x.Id == policyInsuredId)?.Coverages;
var coverages = await _productManager.GetAllCoverageListAsync();
var q = from c in coverages
        join pic in policyInsuredCoverages
        on c.Id equals pic.CoverageCode
        where c.ParentCoverageId == null/* parent coverages have the parent coverage id as null */
        select new SelectListItem
        {
            Value = pic.Id.ToString(),
            Text = c.Id + @" - " + c.Name
        };

/* Populates PolicyInsuredCoverage dropdown */
/* - ViewBag Key needs to match property name in model */
ViewBag.PolicyInsuredCoverageId = 
  new SelectList(q.OrderBy(x => x.Text), "Value", "Text", policyInsuredConstraintViewModel.PolicyInsuredCoverageId);