توضیحات و دانلود

اتصال ListBox به بانک اطلاعات و نمایش چند ردیف از Listbox در Popup در ASP.NET MVC
0 0
اتصال ListBox به بانک اطلاعات و نمایش چند ردیف از Listbox در Popup در ASP.NET MVC

 در این مقاله توضیح خواهیم داد كه چگونه میتوان ListBox را با اتصال به بانک اطلاعات پر کرد و اطلاعات نمایش داده شده را بصورت انتخابی در پنجره PopUp در ASP.Net MVC Razor گرفت و نمایش داد.

ابتدا با استفاده از asp.net mvc اطلاعات را از بانک اطلاعاتی SQL خوانده و با استفاده از دستورات Foreach کنترل ListBox را پر میکنیم سپس چند ردیف از ListBox را انتخاب میکنیم و در پنجره PopUp نمایش میدهیم.

ابتدا یك جدول مانند زیر در SQL طراحی كنید.

سپس چند مقدار مانند زیر در آن وارد كنید.

 

توجه! بانك این سورس در لینك زیر قرار داده شده است!دانلود اسكریپت SQL

 

 فضای نام
ابتدا فضای نامهای زیر را اضافه كنید. 

using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;

  Model
كلاس Model ما شامل دو خصوصیت FruitId و  FruitName میباشد .

public class FruitModel
    {
        public int FruitId { getset; }
        public string FruitName { getset; }
    }

Controller
کنترل کننده متشکل از دو روش عمل است.
روش  GET
در داخل این روش ، PopulateFruits نامیده می شود.
در روش PopulateFruits ، رکوردها از جدول میوه ها با استفاده از DataReader استخراج می شوند و در لیست کلی ListListItem طبقه بندی می شود.
FruitName در Property Text در حالی که FruitId در Property Value ذخیره می شود.
در نهایت، کلاس کلاس FruitModel به View باز می گردد.
روش عمل برای اداره عملیات POST
id میوه های انتخابی در ListBox را گرفته و در نهایت در Popup نمایش میدهد.

public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            FruitModel fruit = new FruitModel();
            fruit.Fruits = PopulateFruits();
            return View(fruit);
        }
        ..
        [HttpPost]
        public ActionResult Index(FruitModel fruit)
        {
            fruit.Fruits = PopulateFruits();
            if (fruit.FruitIds != null)
            {
                List<SelectListItem> selectedItems = fruit.Fruits.Where(p => fruit.FruitIds.Contains(int.Parse(p.Value))).ToList();
 
                ViewBag.Message = "Selected Fruits:";
                foreach (var selectedItem in selectedItems)
                {
                    selectedItem.Selected = true;
                    ViewBag.Message += "\\n" + selectedItem.Text;
                }
            }
 
            return View(fruit);
        }
 
        private static List<SelectListItem> PopulateFruits()
        {
            List<SelectListItem> items = new List<SelectListItem>();
            string constr = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                string query = " SELECT FruitName, FruitId FROM Fruits";
                using (SqlCommand cmd = new SqlCommand(query))
                {
                    cmd.Connection = con;
                    con.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            items.Add(new SelectListItem
                            {
                                Text = sdr["FruitName"].ToString(),
                                Value = sdr["FruitId"].ToString()
                            });
                        }
                    }
                    con.Close();
                }
            }
 
            return items;
        }
    }

View

در داخل نمایش، در خط اول، کلاس FruitModel به عنوان مدل برای  View اعلام شده است.
View شامل یک فرم HTML است که با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام اکشن در این مورد Index است.
ControllerName - نام کنترل کننده. در این مورد نام Home است.
FormMethod - این روش فرم را یعنی GET یا POST مشخص می کند. در این مورد به POST تنظیم خواهد شد.
فرم شامل یک ListBox و یک Button است.
ListBox با استفاده از متد Html.ListBoxFor Html Helper ایجاد می شود.
پارامتر اول عبارت Lambda برای مشخص کردن  مقادیر انتخاب شده ListBox  است که هنگام ارسال فرم تحویل می دهد.
پارامتر دوم نام مقادیر برای نمایش ListBox است که از منبع داده اختصاص داده میشود.
هنگامی که دکمه Submit روی آن کلیک می شود، فرم ارسال می شود و مقادیر انتخاب میوه ها به کنترل کننده ارسال می شود.
در نهایت، نام چند میوه انتخاب شده با استفاده از جعبه پیام هشدار جاوا اسکریپت نمایش داده می شود.

@model ListBox_MVC.Models.FruitModel
 
@{
    Layout = null;
}
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style type="text/css">
        body {
            font-familyArial;
            font-size10pt;
        }
    </style>
</head>
<body>
    @using (Html.BeginForm("Index""Home"FormMethod.Post))
    {
        @Html.Label("Fruits:")
        <br />
        <br />
        @Html.ListBoxFor(m => m.FruitIds, Model.Fruits)
        <br />
        <br />
        <input type="submit" value="Submit" />
    }
    @if (ViewBag.Message != null)
    {
        <script type="text/javascript">
            window.onload = function () {
                alert("@ViewBag.Message");
            };
        </script>
    }
</body>
</html>
 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :