Вызов Partialview со столом на главном экране - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь вызвать частичное представление с таблицей сведений для некоторых элементов. Тем не менее, частичное представление не показывает никаких записей в главном представлении. Как я могу успешно вызвать Patrial view? частичное представление выглядит следующим образом:

 @model IDECOHealthInsurance.Models.Pharmacy
@using (Html.BeginForm("pharmacyDetials", "Pharmacy"))
{

    <h4>تفاصيل الصيدلية</h4>
    <div id="dvPatientNotice" class="MainGridContainer pb-5">

        @if (Model.dtItemsDetails != null)
        {

            <table dir="rtl" id="Paitents" class="MainGrid">
                <thead>
                    <tr style="text-size-adjust:auto">

                        <th>
                            رقم الموظف
                        </th>
                        <th>
                            التاريخ
                        </th>
                        <th>
                            الوقت
                        </th>
                        <th>
                            المستفيدون
                        </th>
                        <th>
                            ملاحظات
                        </th>
                        <th>
                            الباركورد
                        </th>
                        <th>
                            أسم العينة
                        </th>
                        <th>
                            الكمية
                        </th>
                        <th>
                            السعر
                        </th>

                    </tr>
                </thead>
                <tbody>
                    @foreach (System.Data.DataRow row in Model.dtItemsDetails.Rows)
                    {
                        <tr style="width:100%">

                            <td>
                                @row["EMPLOYEE_NUMBER"]
                            </td>
                            <td>
                                @row["ENTRY_DATE"]
                            </td>
                            <td>
                                @row["ENTRY_TIME"]
                            </td>
                            <td>
                                @row["BENEFICIARIES"]
                            </td>
                            <td>
                                @row["NOTE"]
                            </td>

                            <td>
                                @row["ITEM_CODE"]
                            </td>
                            <td>
                                @row["ITEM_NAME"]
                            </td>
                            <td>
                                @row["QTY"]
                            </td>
                            <td>
                                @row["PRICE"]
                            </td>
                        </tr>
                    }
                </tbody>
            </table>
        }

    </div>
}

Контроллер выглядит следующим образом:

[HttpGet]
        public ActionResult pharmacyDetials(Pharmacy model)
        {
            var masterID = Convert.ToInt32(Session["login"]);
            if (masterID == 0)
            {
                return RedirectToAction("Login");
            }
            else
            {
                Models.Pharmacy objPharamcyMode = new Pharmacy();

                IDECOServiceReference.IdecoAPIServiceClient idecoAPI = new IDECOServiceReference.IdecoAPIServiceClient();
                DataTable dataTable = idecoAPI.GETPHARMACYEMPLOYEEMASTER("", 1);

                model.dtItemsDetails = dataTable;

                return PartialView("_PharmacyDetails", model);
            }
        }

И основной вид выглядит следующим образом:

@model IDECOHealthInsurance.Models.Pharmacy

@{
    ViewBag.Title = "PharmacyApplication";
    Layout = "~/Views/Shared/_Layout.cshtml";

}
<table style="height:680px; width:1280px; border:hidden">
    <tr>
        <td>
            <div id="pDetail">

                @Html.Partial("_PharmacyDetails", Model)

            </div>
        </td>
        <td>

            @using (Ajax.BeginForm("PharmacyApplication", "Pharmacy", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "updatePnl", InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace, LoadingElementId = "Loading", OnBegin = "" }))
            {


                <div class="form-horizontal">
                    <div class="form-group">
                        @Html.LabelFor(model => model.PHARMACY_NAME, htmlAttributes: new { @class = "control-label col-md-2" })

                        <div class="col-md-10">
                            @Html.DisplayFor(model => model.PHARMACY_NAME)

                        </div>
                    </div>


                    <div class="form-group">
                        @Html.LabelFor(model => model.EMPLOYEE_NUMBER, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">
                            @Html.EditorFor(model => model.EMPLOYEE_NUMBER, new { htmlAttributes = new { @class = "form-control" } })
                            @Html.ValidationMessageFor(model => model.EMPLOYEE_NUMBER, "", new { @class = "text-danger" })
                        </div>
                    </div>



                    <div class="form-group">
                        @Html.LabelFor(model => model.ENTRY_DATE, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">
                            @Html.DisplayFor(model => model.ENTRY_DATE, new { htmlAttributes = new { @class = "form-control", @Value = DateTime.Today.ToString("dd/MM/yyyy"), @readonly = "readonly" } })

                        </div>
                    </div>



                    <div class="form-group">
                        @Html.LabelFor(model => model.ENTRY_TIME, new { htmlAttributes = new { @class = "form-control", @Value = DateTime.Today.ToString("HH:mm:ss"), @readonly = "readonly" } })
                        <div class="col-md-10">
                            @Html.DisplayFor(model => model.ENTRY_TIME)
                        </div>
                    </div>



                    <div class="form-group">
                        @Html.LabelFor(model => model.BENEFICIARIES, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">

                            زوجة  @Html.RadioButtonFor(m => m.BENEFICIARIES, 1)
                            أبن @Html.RadioButtonFor(m => m.BENEFICIARIES, 2)
                            أبنة @Html.RadioButtonFor(m => m.BENEFICIARIES, 3)
                            الموظف @Html.RadioButtonFor(m => m.BENEFICIARIES, 4)
                            @Html.ValidationMessageFor(model => model.BENEFICIARIES, "", new { @class = "text-danger" })
                        </div>
                    </div>



                    <div class="form-group">
                        @Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" })
                        <div class="col-md-10">


                            <textarea name="NOTE" id="comments" style="font-family:'Times New Roman';font-size:1.2em; width: 280px; height:auto" placeholder="أكتب ملاحظاتك هنا"></textarea>
                            @Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" })
                        </div>
                    </div>

                    <div id="showPnl">

                        <input class="btn btn-default" type="button" value="تفاصيل الصيدلية" onclick="@("window.location.href='" + @Url.Action("pharmacyDetials", "Pharmacy") + "'");" />
                    </div>

                    <div class="form-group">
                        <div class="col-md-offset-2 col-md-10">
                            <input type="submit" id="panel" value="أضافة" class="btn btn-default" />
                        </div>

                        <input class="btn btn-default" type="button" value="خروج" onclick="@("window.location.href='" + @Url.Action("LogOut", "Pharmacy") + "'");" />
                    </div>

                </div>

            }
        </td>
    </tr>
</table>



<div id="updatePnl">
    @Html.Partial("_PartialPharmacyDetails", Model)
</div>
<br />
<br />
<br />

<div id="pnlItemsDetails">
    @Html.Partial("_PartialItemsDetails", Model)
</div>

Когда я нажимаю на Кнопка "Сведения о аптеке" (на арабском языке c) = "تفصيل الصيدلية", она перенаправляет меня на другую страницу, которая содержит нужную таблицу, которую я хочу показать на главном экране. Однако я не хочу, чтобы это произошло, я хочу показать таблицу, не нажимая на кнопку. Не могли бы вы объяснить, почему возникла эта проблема?
Результат во время выполнения выглядит следующим образом: Результат приложения во время выполнения

1 Ответ

0 голосов
/ 02 марта 2020

Если вы хотите предотвратить перенаправление вашей страницы, вы должны использовать запрос ajax. Замените строку ниже:

<input class="btn btn-default" type="button" value="تفاصيل الصيدلية" onclick="@("window.location.href='" + @Url.Action("pharmacyDetials", "Pharmacy") + "'");" />

на:

<input class="btn btn-default" type="button" value="تفاصيل الصيدلية" onclick="getPharmacyDetails();" />

и в разделе javascript добавьте следующий код:

function getPharmacyDetails()
{
    $.ajax({
        url : '@Url.Content("~/Pharmacy/pharmacyDetials")',
        type: "GET",
        success: function (result) {

            $("#pDetail").html(result);

        }
    });
}

Также замените ниже HTML:

<div id="pDetail">
    @Html.Partial("_PharmacyDetails", Model)
</div>

С:

<div id="pDetail"></div>

Приведенный выше запрос ajax выполнит частичное представление и заполнит pDetial div требуемым результатом. Попробуйте и дайте мне знать, если у вас есть какие-либо вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...