Как вызвать динамический идентификатор в JavaScript для другого клика по действию URL? - PullRequest
1 голос
/ 16 марта 2019

Мой HTML-код здесь:

<table>
      <tr>
          <td>
              @Html.DropDownList("Statues", (SelectList)ViewBag.UserType, string.Empty, new { @class = "NewIDCn",@id = "name1" })
          </td>
          <td>
              <a class = "UpdateU" href="@Url.Action("Update", "UserPromoted", new { id = item.UserID})">Update</a>
         </td>
      </tr>
      <tr>
          <td>
               @Html.DropDownList("Statues", (SelectList)ViewBag.UserType, string.Empty, new { @class = "NewIDCn",@id = "name2" })
         </td>
         <td>
               <a class = "UpdateU" href="@Url.Action("Update", "UserPromoted", new { id = item.UserID})">Update</a>
         </td>
     </tr>
</table>

и мой скрипт здесь,

<script type="text/jscript">
    $(document).ready(function () {
        var i = 0;
        $('.NewIDCn').each(function () {
            i++;
            var newID = 'name' + i;
            $(this).attr('id', newID);
            $(this).val(i);
        });
    });
        $(function () {
            $('.UpdateU').click(function () {
                var name = $('#name').val();
                this.href = this.href + '?UserType=' + encodeURIComponent(name);
            });
        });
</script>

Мой контроллер здесь:

 public ActionResult Update(string id, string UserType)

         {
                    query = "UPDATE    tblUserRegister SET          UserType = ' " + UserType + "' WHERE     (UserID = '" + id + "')";
                    cmd = new SqlCommand(query, conn);
                    cmd.ExecuteNonQuery();
         }

this document.ready функция, используемая для автоматического увеличения динамического идентификатора name(name1,name2).Когда я нажимаю на действие URL, идентификатор статуи возвращается к имени идентификатора в пользовательской функции functune.Как мне это сделать?И вернуть имя и тип пользователя в контроллер?

1 Ответ

0 голосов
/ 18 марта 2019

Это может быть достигнуто несколькими способами.Попробуйте следующее:

Добавьте несколько классов к элементу tr следующим образом

<table>
    <tr class="t-row">
        <td>
            @Html.DropDownList("Statues", (SelectList)ViewBag.UserType, string.Empty, new { @class = "NewIDCn",@id = "name1" })
        </td>
        <td> <a class="UpdateU" href="@Url.Action(" Update ", "UserPromoted ", new { id = item.UserID})">Update</a> </td>
    </tr>
    <tr class="t-row">
        <td>
            @Html.DropDownList("Statues", (SelectList)ViewBag.UserType, string.Empty, new { @class = "NewIDCn",@id = "name2" })
        </td>
        <td> <a class="UpdateU" href="@Url.Action(" Update ", "UserPromoted ", new { id = item.UserID})">Update</a> </td>
    </tr>
</table>

измените ваш сценарий на

 $(document).ready(function () {
    $(document).off("click", ".UpdateU").on("click", ".UpdateU", function (event) {
        var url = $(event.target).attr("href");
        var val = $(this).parents(".t-row").find("select").val();
        var newUrl = url +'?UserType=' + encodeURIComponent(val);
        alert(newUrl );
        event.stopPropagation();
        return false;
    });
});

newUrl будет URL для контроллера.

...