簡體   English   中英

我如何從ASP.NET MVC上的事件模糊將數據綁定到DisplayFor

[英]How I do bind data to DisplayFor from event blur on asp.net mvc

我正在使用事件模糊功能來失去對文本框的關注。 但是我僅將數據綁定到textboxfor,而不能將數據綁定到labelfor或displayfor。 我能怎么做 ?

我的Java腳本:

$('#PGId').blur(function () {
        var errormsg = "";
        var id = $('#PGId').val();
        $.ajax({
            type: "GET",
            url: '@Url.Action("GetDetailPG", "TimeSheetHeader")',
            data: { pgId: id },
            dataType: "json",
            success: function (data) {
                $("#FirstName").val(data.FisrtName)
                $("#LastName").val(data.LastName)
                $("#Shiff").val(data.ShiffId)
            },
            error: function (jqXHR, exception) {
                $('#error').html("Primitive Functions not allowed.")
            }
        });
    })

我的剃刀視圖:

<div class="col-md-3 form-group">
                @Html.LabelFor(model => model.PGId) <em>( * )</em>
                @Html.TextBoxFor(model => model.PGId, new { @class = "form-control input-sm", @name = "normal" })
                @Html.DisplayFor(model => model.FirstName) @Html.DisplayFor(model => model.LastName)
</div>
<div class="col-md-3 form-group">
                @Html.LabelFor(model => model.Shiff)
                <div>
                    <label class="radio-inline">
                        @Html.RadioButtonFor(model => model.Shiff, "M") Morning
                    </label>
                    <label class="radio-inline">
                        @Html.RadioButtonFor(model => model.Shiff, "N") Night
                    </label>
                </div>
                <span style="color:red" class="help-block">@Html.ValidationMessageFor(model => model.Shiff)</span>
</div>

@Html.DisplayFor()不會生成具有id屬性的元素,也不會生成具有value屬性的控件,因此您不能使用$("#FirstName").val(data.FirstName) 而是創建一個具有所需id的容器元素,並在ajax調用中更新其內容(不確定ShiffId是什么-您沒有為此顯示任何html)

@Html.TextBoxFor(m => m.PGId, new { @class = "form-control input-sm" })
<div id="firstname">@Html.DisplayFor(m => m.FirstName)</div>
<div id="lastname">@Html.DisplayFor(m => m.LastName)</div>

然后在腳本中

success: function (data) {
  $("#firstname").text(data.FirstName)
  $("#lastname").text(data.LastName)
},

還要注意,您應該使用文本框的change事件(而不是blur ),以避免當用戶只是在控件之間切換時不必要地調用服務器。

旁注:為什么要覆蓋屬性PGId的文本框的name屬性?

編輯

基於OP編輯顯示ShiffId html,以更新單選按鈕,向單選按鈕添加類名稱(注意:添加了class屬性以方便選擇,並添加了id屬性,因此沒有重復項)

@Html.RadioButtonFor(model => model.Shiff, "M", new { id = "shiff-m", @class = "shiff" })
@Html.RadioButtonFor(model => model.Shiff, "N", new { id = "shiff-n", @class = "shiff" })

並將$("#Shiff").val(data.ShiffId)替換為(假定data.Shiff為“ M”或“ N”)

$('.shiff[value="' + data.Shiff + '"]').prop('checked', true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM