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

دریافت متن و مقدار انتخاب شده از DropDownList در ASP.NET MVC
0 0
دریافت متن و مقدار انتخاب شده از DropDownList در ASP.NET MVC

 در این مقاله توضیح خواهیم داد كه چگونه میتوان متن و مقدار انتخاب شده در DropDownList را در ASP.Net MVC Razor گرفت و نمایش داد.

مقدار انتخابی DropDownList به راحتی با استفاده از Model یا با استفاده از مجموعه Request.Form به راحتی در دسترس است، اما برای نمایش متن انتخاب شده،  به فیلد پنهان با استفاده از jQuery كپی می شود و سپس در داخل Controller در ASP.Net MVC وارد می شود.

ابتدا یك جدول مانند زیر در 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
Controller متشكل از دو  عمل است.
 عملیات GET
در داخل این روش ، عمل PopulateFruits  اتفاق می افتد.
در داخل PopulateFruits ، ركوردها از جدول میوه ها با استفاده از مجموعه FruitModel در DataReader جمع آوری می شوند .
در نهایت لیست مجموعه های  FruitModel اشیاء در View نمایش داده می شود.
عملیات POST
این روش عمل ارتباط ساخته شده از تابع POST را مدیریت می كند.

هنگامی كه فرم ارسال می شود، مقادیر ارسال شده از طریق مجموعه Request.Form گرفته می شود .
مقادیر FruitId و FruitName جمع آوری شده و به یك شی TempData كه بعدا در نمایش با استفاده از جعبه پیام هشدار جاوا اسكریپت نمایش داده می شوند تنظیم شده است.

public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            List<FruitModel> fruits = PopulateFruits();
            return View(fruits);
        }
 
        [HttpPost]
        public ActionResult Submit(FormCollection formcollection)
        {
            TempData["Message"] = "نام میوه: " + formcollection["FruitName"];
            TempData["Message"] += "\\nمقدار میوه: " + formcollection["FruitId"]; ;
            return RedirectToAction("Index");
        }
 
        private static List<FruitModel> PopulateFruits()
        {
            List<FruitModel> fruits = new List<FruitModel>();
            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())
                        {
                            fruits.Add(new FruitModel
                            {
                                FruitName = sdr["FruitName"].ToString(),
                                FruitId = Convert.ToInt32(sdr["FruitId"])
                            });
                        }
                    }
                    con.Close();
                }
            }
 
            return fruits;
        }
    }

 

View
درون View، در خط اول، كلاس FruitModel به عنوان IEnumerable اعلام می شود كه مشخص می كند كه آن را به عنوان یك مجموعه در دسترس خواهد بود.
View شامل یك فرم HTML است كه با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام اكشن در این مورد نام  Register است.
ControllerName - نام كنترل كننده در این مورد نام Home است.
FormMethod - روش فرم را یعنی GET یا POST مشخص می كند. در این مورد به POST تنظیم خواهد شد.
فرم شامل یك DropDownList، یك فیلد پنهان و یك دكمه ارسال است.
DropDownList با استفاده از متد Html.DropDownList Html Helper تولید می شود.
اولین پارامتر Attribute نام DropDownList است.
پارامتر دوم كلاس مدل برای DropDownList یعنی منبع داده است.
پارامتر سوم، متن مورد پیش فرض DropDownList است. اگر مشخص نشده باشد، در DropDownList هیچ مورد پیش فرض وجود نخواهد داشت.
در نهایت، پارامتر چهارم و آخر اجازه می دهد تا ویژگی های HTML مانند شناسه، كلاس و غیره را مشخص كنیم.
DropDownList به یك handler رویداد جابجایی jQuery اختصاص داده است، هنگامی كه یك مورد در DropDownList انتخاب شده است، متن مورد انتخاب شده در فیلد مخفی كپی میشود.
هنگامی كه دكمه Register كلیك می شود، فرم ارسال می شود و مقادیر FruitId و FruitName به Controller ارسال می شود.
در نهایت، مقادیر FruitId و FruitName میوه انتخاب شده با استفاده از جعبه پیام هشدار جاوا اسكریپت نمایش داده می شود.

@model IEnumerable<DropDownList_Selected_Text_MVC.Models.FruitModel>
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    @using (Html.BeginForm("Submit""Home"FormMethod.Post))
    {
        @Html.DropDownList("مقدار میوه"new SelectList(Model, "FruitId""FruitName"), "لطفا انتخاب كنید"new { @id = "ddlFruits" })
        @Html.Hidden("نام میوه"nullnew { @id = "hfFruitName" })
        <input type="submit" value="Submit" />
    }
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $("body").on("change""#ddlFruits"function () {
            $("#hfFruitName").val($(this).find("option:selected").text());
        });
    </script>
    @if (TempData["Message"] != null)
    {
        <script type="text/javascript">
            $(function () {
                alert("@TempData["Message"]");
 
            });
        </script>
    }
</body>
</html>


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

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