مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

laleh_456

عضویت از 1395/10/06

استفاده از inputbox در selecteditemlist

  • چهارشنبه 13 اردیبهشت 1396
  • 20:50
تشکر میکنم

public ActionResult AddFood()
      {
          var model = new AddFoodViewModel();
          List<System.Web.Mvc.SelectListItem> items = new List<System.Web.Mvc.SelectListItem>();
          var list = db.GetStuff();
          foreach (var item in list)
          {
              items.Add(new System.Web.Mvc.SelectListItem
                        {
                            Text = item.Name.ToString(),
                            Value = item.Id.ToString(),
                             
                        });
          }
      model.List =items;
         return View(model);
        
      }

این هم کد ویو:

@for (int i = 0; i < Model.List.Count(); i++)
            {
                <div class="col-md-2 marginbot20  ">
                    @Html.CheckBoxFor(m => m.List[i].Selected)
                    @Html.DisplayFor(m => m.List[i].Text)
                    @Html.HiddenFor(m => m.List[i].Value)
                    @Html.HiddenFor(m => m.List[i].Text)
                    
                </div>
            }

سلام دوستان من از selceteditemlist استفاده کردم و یه سری ایتم ها رو نمایش میدم.چطور میتونم درکنار هر چک باکس یک اینپوت باکس داشته باشم که بتونم درباره هرکدوم یه نظری بنویسم و با زدن دکمه ثبت ایتمهای انتخاب شده با نظرشون ثبت بشن.

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 14 اردیبهشت 1396
  • 09:01

برای درج input در همان حلقه کنار هرکدام یکی قرار دهید و یک کلید

بعد با Ajax میتونید رویداد onclick رو کنترل کنید و اطلاعات را ثبت کنید

کاربر سایت

laleh_456

عضویت از 1395/10/06

  • پنجشنبه 14 اردیبهشت 1396
  • 12:30

سلام بسیار ممنون

من از یک لیست استفاده کردم و مقدار input ها رو در لیست با id ذخیره کردم تا اینجای کار مشکلی نیس و لیست من تشکیل میشه.ولی وقتی در اکشن AddFood میخام ازش استفاده کنم خطا میده که این لیست من خالی هست و مقداری در اون نیس.ممنون میشم راهنماییم کنید که چیکار کنم؟

  public class AddFoodViewModel
    {


        public List<System.Web.Mvc.SelectListItem> List { get; set; }
       public List<System.Web.Mvc.SelectListItem> ListAmount { get; set; }
        public Foods.Models.DomainModels.Food Food { get; set; }
    }

اکشنها:  

    public ActionResult AddAmount(int Id,string Amount)
        {
            var model = new AddFoodViewModel();
            List<System.Web.Mvc.SelectListItem> items = new List<System.Web.Mvc.SelectListItem>();
            
           
                items.Add(new System.Web.Mvc.SelectListItem
                {
                    Text = Amount.ToString(),
                    Value = Id.ToString(),

                });
         
            model.ListAmount = items;
            return View(model);

        }

​اکشن AddFood

  public ActionResult AddFood(AddFoodViewModel model)
        {
            List<System.Web.Mvc.SelectListItem> items = new List<System.Web.Mvc.SelectListItem>();
            List<System.Web.Mvc.SelectListItem> itemamount = new List<System.Web.Mvc.SelectListItem>();

              items = model.List;
            itemamount = model.ListAmount;
            foreach (var item in items)
            {
                if (item.Selected)
                {
                    int idstuf = Convert.ToInt32(item.Value);
                    foreach (var item2 in itemamount)
                    {
                        if (item2.Value == item.Value)
                        {
                            string amount = item2.Text.ToString();
                        }
                    }
                    int idfood=model.Food.Id;
                 
                    db.AddFoodStuff(idstuf, idfood);
                 
                }
            }
            }
             
            
           return MessageBox.Show("غذا با موفقیت ثبت شد", MessageType.Success);
        }

ویو:

 @for (int i = 0; i < Model.List.Count(); i++)
                {
                    <div class="col-md-2 marginbot20  ">

                        @Html.CheckBoxFor(m => m.List[i].Selected)

                        @Html.DisplayFor(m => m.List[i].Text)
                        @Html.HiddenFor(m => m.List[i].Value)
                        @Html.HiddenFor(m => m.List[i].Text)
                        <input class="txtamount" placeholder="مقدار" type="text" value="" name="amount" id=@i++>
                    </div>
                }

      $(".txtamount").change(function () {
                var amount = $(this).val();
                var id = $(this).attr("id");
                $.ajax({
                    url: "/Admin/AddAmount",
                    data: { Id: id, Amount: amount },
                    type: "Post",
                    dataType: "Json",
                 
                });
            });

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 14 اردیبهشت 1396
  • 12:37

برگرداندن لیست به اکسن به این صورت نیست دوست من

سرچ کنید Send Lest To Action MVC و نمونه ها رو بررسی کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)