Как установить значение ширины DIV, используя возвращаемое значение списка свойств при вызове ajax со страницы управления - MVC2 - PullRequest
0 голосов
/ 10 июля 2011

Я пытаюсь установить ширину DIV, используя значение, возвращаемое при вызове AJAX из приведенного ниже кода. Когда я устанавливаю флажок - JavaScript должен сработать и отправить запрос ajax. После выполнения кода ajax я возвращаю список свойств и должен использовать это значение для установки ширины div.

            <script language="javascript" type="text/javascript">
                $(document).ready(function () {
                    $(":checkbox").click(function () {
                        var $this = $(this);
                        var checkboxData = $(':checked').val();
                         $.ajax({
                           url: '/Home/About',
                           type: 'POST',
                           data: { id: checkboxData },
                           success: function (result) {
        //I am not sure that below code is correct but What am trying here to use the returned value to set the DivID and Divwidth
                           $(".#result.data(DivID)").css("width", #result.data(DivWidthList) + "px"); 
                            }       
                        });
                    });
                });

        </script>
        <%using (Html.BeginForm())
  { %>
       <%foreach (var cbName in (List<Hello_World_MVC.Option>)ViewData["Data"])
                  {%>
                  <div id="<%=cbName.OptionID%>" style="background-color:Blue;">
                   <input type="checkbox" id="myCheckbox" class="<%=cbName.OptionID%>" value="<%=cbName.OptionID%>1" /><%=cbName.OptionName%>
                  </div>
                <%} %>  
   <%} %>  

Страница модели:

public class ValueProperty
{
    private List<double> divWidthList = new List<double>();
     public List<double> DivWidthList { get; set; }
    public string DivID { get; set; }
}

Страница управления:

    public ActionResult About(int id)
    {
        AboutModels ObjAM = new AboutModels();//model class name
        ViewData["Data"] = ObjAM.dbValue();
        ValueProperty ObjVP = new ValueProperty();
        for (int i = 20; i <= 100; i += 20)
        {
            ObjVP.DivWidthList.Add(i);//adding the value to property list
        }
        foreach (var DivValue in ObjAM.dbValue())
        {
            ObjVP.DivID = Convert.ToString(DivValue.OptionID);//insert the value for DivID
        }
        ObjAM.dbUpdate(id);
        return Json(new { data = ObjVP});//return the property value
    }

Мне нужно использовать возвращенное значение AJAX для установки DivID и DivWidth. Здесь я включил свою страницу Model, Control и View. Пожалуйста, совет

1 Ответ

0 голосов
/ 11 июля 2011

В обратном вызове AJAX success переменная результата будет сериализованной моделью JSON, которую вы вернули в действии контроллера.Теперь проблема вашей модели в том, что она содержит идентификатор, но также содержит список ширин (DivWidthList), и я не вижу связи между этими двумя.Также здесь вы хотите установить ширину отдельного элемента DOM, чтобы вы возвращали только его ширину:

return Json(new { id = ObjVP.DivID, width = ???? });

, а затем использовали его в обратном вызове:

success: function(result) {
    var id = result.id;
    var width = result.width;
    $('#' + id).css('width', width + 'px');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...