Можно ли использовать частичное представление для обновления элементов Ajax? - PullRequest
1 голос
/ 02 декабря 2009

У меня есть таблица, построенная из списка кодов дефектов.

Может ли часть каждой строки загружать элемент вложенной таблицы с кнопками отправки?

Пример таблицы:

<table><tr>
<th>Code</th><th>Description</th>
<th>Impact to your customers</th>
<th>Impact to your associates</th>
<th>Save</th>
<th>Save Errors</th></tr>

Где первые 2 столбца заполняются из справочной таблицы, а следующие 3 столбца являются формой, чтобы пользователь мог установить значения или обновить их из предыдущих значений.

Могу ли я как-то иметь 3 TD элементов в строке отдельной формы Ajax со встроенным codeId в качестве скрытого значения? Что бы мои строго типизированные представления унаследовали? внешний слой будет наследовать IEnumerable<DefectDTO>, а частичные представления будут наследовать тип AssessmentDTO?

Вот фактическая таблица, которую я пытаюсь получить для работы:

<table>
    <tr>

        <th>
            Code
        </th>
        <th>
            Description
        </th>
        <th>
            Document
        </th>
        <th>
            Customer Contact Required for Resolution
        </th>
        <th>
            AssociateSeverity
        </th>
        <th>
            ShareholderSeverity
        </th>
        <th>
            CustomerSeverity
        </th>
        <th>
            RegulatorySeverity
        </th>
        <th>
            RootCause
        </th>
        <th>
            Investor Requirements*
        </th>
    </tr>

<% foreach (var item in Model.DefectCodes) { %>

    <tr>
        <% using (Ajax.BeginForm("Create", new AjaxOptions() ))
           {%>
        <td>
            <%= Html.Encode(item.Code)%>
        </td>
        <td>
            <%= Html.Encode(item.Description)%>
        </td>
        <%  Html.RenderPartial("Create",null, ViewData); %><!-- This is where the form is -->
        <% } %>
    </tr>

<% } %>

</table>

1 Ответ

0 голосов
/ 27 июля 2011
<% foreach (var item in Model.DefectCodes) { %>

    <tr>
        <% using (Ajax.BeginForm("Create", new AjaxOptions() ))
           {%>

        <!--should be easy like this!--><!--ur codeid here-->
        <%=Html.HiddenFor(modelItem => item.codeid)%> 

        <td>
            <%= Html.Encode(item.Code)%>
        </td>
        <td>
            <%= Html.Encode(item.Description)%>
        </td>
        <%  Html.RenderPartial("Create",null, ViewData); %><!-- This is where the form is -->
        <% } %>
    </tr>

<% } %>

</table>

это просто решает вашу скрытую ценность! проблема ..

вам не нужно помещать его в TD, потому что вы хотите, чтобы он был скрыт, поэтому он все равно получит значение для вас, но не будет отображаться в форме, в таблице или в представлении ... таким образом, вы можете сохранить 3 TD и получите большее значение, чем указано в форме.

...