কীভাবে একটি সাধারণ এইচটিএমএল.ড্রপডাউনলিস্টফোর্ড () লিখবেন?


133

এএসপি.নেট এমভিসি 2 তে, আমি একটি খুব সাধারণ ড্রপডাউন তালিকা লিখতে চাই যা স্থির বিকল্প দেয়। উদাহরণস্বরূপ আমি "লাল", "নীল" এবং "সবুজ" এর মধ্যে পছন্দগুলি সরবরাহ করতে চাই।

উত্তর:


188

দেখুন এই দুটিই MSDN নিবন্ধ এবং একটি স্ট্যাক ওভারফ্লো উদাহরণ স্বরূপ ব্যবহার এখানে

ধরা যাক যে আপনার নীচের লিনক / পোকো ক্লাস রয়েছে:

public class Color
{
    public int ColorId { get; set; }
    public string Name { get; set; }
}

এবং আসুন আমরা বলি যে আপনার কাছে নিম্নলিখিত মডেল রয়েছে:

public class PageModel 
{
   public int MyColorId { get; set; }
}

এবং, অবশেষে, আসুন বলি যে আপনার কাছে রঙগুলির নীচের তালিকা রয়েছে। তারা কোনও স্থির তালিকা ইত্যাদি থেকে লিনক ক্যোয়ারী থেকে আসতে পারে .:

public static IEnumerable<Color> Colors = new List<Color> { 
    new Color {
        ColorId = 1,
        Name = "Red"
    },
    new Color {
        ColorId = 2,
        Name = "Blue"
    }
};

আপনার দৃষ্টিতে, আপনি এর মতো একটি ড্রপ ডাউন তালিকা তৈরি করতে পারেন:

<%= Html.DropDownListFor(n => n.MyColorId, 
                         new SelectList(Colors, "ColorId", "Name")) %>

1
এটা সত্যিই পরিষ্কার। আমি জানতে চাই যে আমার কোডে আইনিউনামেবল <কালার> কোথায় রাখা উচিত? আমি জানি এটি প্রশ্ন হিসাবে বোকা মনে হয় তবে আমি খুব হারিয়েছি এবং এতে নতুন: এস
রাইনসে

7
কোন উদ্বেগ নেই, বন্ধু। আমি জানি এর অনুভূতি কেমন. :) যেমন আপনি আপনার প্রাথমিক প্রশ্নে পরামর্শ দিয়েছেন, এটি কি একটি স্থির তালিকা যা আপনি কোড তৈরি করতে যাচ্ছেন, বা আপনি কোনও ডাটাবেস থেকে এই তালিকাটি টানতে যাচ্ছেন?
ইভান নাগলে

একটি স্থিতিশীল তালিকায় 4 টি বিকল্প রয়েছে যা কোনও ডেটা বেসকে ডুবিয়ে দেয় না
রাইনস

6
"এইচটিএমএললিস্ট" বা অন্য কিছু নামে একটি স্ট্যাটিক ক্লাস তৈরি করুন। সিস্টেমে স্ট্যাটিক ক্লাস রাখুন e ওয়েবে.এমভিসি নেমস্পেসে। আপনার স্ট্যাটিক ক্লাসে, আপনার অনুমিত <কালার> রঙগুলির স্থির তালিকা যুক্ত করুন। তারপরে, আপনার দৃষ্টিতে, আপনি এইচটিএমএললিস্ট.আরবিলেশন কল করে এটি উল্লেখ করতে পারেন। আশা করি তা বোধগম্য হয়। আমাকে জানতে দাও. :)
ইভান নাগলে

2
আমি কীভাবে এটি করব তা জানতাম না: '(... আমি জানি না কোথায় রঙের সংঘাত এবং এইচটিএমএললিস্টগুলি রাখা উচিত (মডেল ফোল্ডারে কীভাবে থাকতে পারে?) এবং কীভাবে ভিউতে রেফার করতে হয়। অলসও কীভাবে কীভাবে রাখবেন জানি না ভিউমোডেলের একটি বৈশিষ্ট্যে পছন্দের ফলাফল..আমি খুব বিভ্রান্ত: /
রিনেস

61
<%: 
     Html.DropDownListFor(
           model => model.Color, 
           new SelectList(
                  new List<Object>{ 
                       new { value = 0 , text = "Red"  },
                       new { value = 1 , text = "Blue" },
                       new { value = 2 , text = "Green"}
                    },
                  "value",
                  "text",
                   Model.Color
           )
        )
%>

অথবা আপনি কোনও ক্লাস লিখতে পারবেন না, সরাসরি দেখার মতো কিছু রাখুন।


2
আপনার কোডটি চেষ্টা করার সময় আমি নীচের ত্রুটিটি পেয়েছি: "কোনও অবজেক্টের উদাহরণে অবজেক্ট রেফারেন্স সেট করা নেই।"
বাশার আবু শামা

12
আপনার দৃষ্টিতে মডেল যুক্তি যুক্ত করার জন্য খারাপ ধারণা
দানিয়াল টিউল্প

34

মডেলের একটি অভিধান দিয়ে শুরু করে প্রচুর ফ্যাট আঙুলিং এড়িয়ে চলুন

namespace EzPL8.Models
{
    public class MyEggs
    {
        public Dictionary<int, string> Egg { get; set; }

        public MyEggs()
        {
            Egg = new Dictionary<int, string>()
            {
                { 0, "No Preference"},
                { 1, "I hate eggs"},
                { 2, "Over Easy"},
                { 3, "Sunny Side Up"},
                { 4, "Scrambled"},
                { 5, "Hard Boiled"},
                { 6, "Eggs Benedict"}
            };

    }


    }

প্রদর্শনে এটি প্রদর্শনের জন্য একটি তালিকায় রূপান্তর করুন

@Html.DropDownListFor(m => m.Egg.Keys,
                         new SelectList(
                             Model.Egg, 
                             "Key", 
                             "Value"))

32

হাই এখানে আমি কীভাবে এটি একটি প্রকল্পে করেছি:

     @Html.DropDownListFor(model => model.MyOption,                
                  new List<SelectListItem> { 
                       new SelectListItem { Value = "0" , Text = "Option A" },
                       new SelectListItem { Value = "1" , Text = "Option B" },
                       new SelectListItem { Value = "2" , Text = "Option C" }
                    },
                  new { @class="myselect"})

আমি আশা করি এটি কাউকে সাহায্য করবে ধন্যবাদ


12

অথবা এটি কোনও ডাটাবেস প্রসঙ্গে থেকে যদি আপনি ব্যবহার করতে পারেন

@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))

22
দয়া করে এই ধরণের বাজে কথা উত্সাহিত করবেন না। আপনি যদি আপনার রেজার ভিউগুলিতে আপনার ডিবি প্রসঙ্গটি উল্লেখ করতে চান তবে এটি আমাদের পক্ষে যারা সঠিকভাবে সফ্টওয়্যার তৈরি করতে চান তবে এটি একটি ভয়ানক ধারণা। আপনার রেজার ভিউটিকে একটি ভিউ মডেল শ্রেণিতে আবদ্ধ করুন, দর্শনটির জন্য প্রয়োজনীয় যে কোনও ডেটা নিয়ামক দ্বারা নির্মিত ভিউ মডেলের উদাহরণে সংরক্ষণ করা হয়। এই কারণ থেকে আমি দূরে চলে যাচ্ছি তারই একটি অংশ এটি। নেট, অনেকগুলি ভয়ানক বিকাশকারী তাদের কোডটি সহ সকলের জন্য বিশাল মাথাব্যথা তৈরি করে ভয়ঙ্কর কাজ করে। আমি বাজি ধরছি আপনি আপনার সমস্ত ব্যবসায়ের যুক্তি আপনার নিয়ন্ত্রণকারীদের মধ্যে রেখেছেন!
জেব্যাক্টন

7
প্রথমত, যে কোনও ব্যাকরণের বিযুক্তির জন্য দুঃখিত, যেহেতু ইংরেজি আমার প্রথম ভাষা নয়। কেউ এইরকম চিন্তাভাবনা করার মত মন্তব্য করতে দেখে সর্বদা খুশি, আমি আপনাকে ধন্যবাদ জানাই স্যার যে আপনি অবদান রাখতে সময় নিয়েছিলেন। এটি সর্বদা আশ্বাস দেয় যে বিকাশকারীদের পেশাটি আপনার মতো ভাল হাতে রয়েছে, যেহেতু আমার কাজটি করবে না। আপনার অজ্ঞ মন্তব্যের পছন্দগুলি কেন আমি এখানে আর পোস্ট করি না। আমি আপনাকে জানিয়ে দিতে পারি যে আমি যখন এটি লিখেছিলাম তখন আমার পড়াশুনায় 8 মাস ছিল এবং আগে কখনও ওয়েব বিকাশকে স্পর্শ করতে পারি নি। আমার যে সামান্য জ্ঞান ছিল তা দিয়ে আমি একটি আলাদা আপোয়ার ভাগ করতে চেয়েছিলাম।
জোয়েল ওয়াহলুন্ড

7
8 মাস? তাহলে কেন আপনি কীভাবে জানতে না পারলে সমস্যা সমাধানের চেষ্টা করবেন? আমার মন্তব্য অজ্ঞদের থেকে দূরে, আমি এই জিনিসটি দিনের পর দিন দেখছি। আপনার সহকর্মীদের আপনি যে পরিমাণ ম্যানুয়াল কাজের দায়বদ্ধ তা বিবেচনা করতে হবে। কল্পনা করুন আপনার কয়েকশ ভিউ সহ একটি এন্টারপ্রাইজ অ্যাপ্লিকেশন রয়েছে এবং আপনার সিটিও ওরাকল ডিবিতে স্যুইচ করতে চায়। কেবলমাত্র আপনার এক লাইনের কোডের কারণে ড্রপ ডাউন তালিকা ব্যবহার করে এমন সমস্ত দর্শন এবং নিয়ামককে রিফেক্টর করার আক্ষরিক ব্যয়টি কল্পনা করুন! আমি আপনাকে অপমান করার চেষ্টা করছি না, কেবল আপনাকে বোঝানোর চেষ্টা করছি যে কীভাবে একটি খারাপ খারাপ পরামর্শের প্রভাব ফেলতে পারে।
জেব্যাকটন

2
স্ট্যাটিক এনাম ভিত্তিক সমাধানগুলি রিফ্যাক্টরের প্রয়োজনের চেয়ে আলাদা কোনও নয়। ব্যবসায়ের তালিকায় কোনও রঙ যুক্ত করতে চাইলে কমপক্ষে কোনও কোড পরিবর্তন হয়নি। যদি আরও লোকেরা প্রকৃতপক্ষে একটি ডেটাবেস ব্যবহারের কথা ভেবে থাকে তবে বিশ্বটি আরও ভাল জায়গা হবে।
m12lrpv

3
আচ্ছা এই থ্রেডটি আমার মুখের হাসি নিয়ে আসে যখন আমি একবারে একবারে এটি দেখি। আমি @ সিয়ানটি পয়েন্টটি আরও কিছুটা ভাল বুঝি। আমি অনুমান করি যখন আমি সাহায্য করার চেষ্টা করছিলাম তখন আমি সাধারণভাবে আক্রমণটি অনুভব করেছি। আমি আজকের দিনে নিজের চেয়ে পছন্দ করি সবকিছুকে স্তর দ্বারা পৃথক করে রাখা, এবং ভিউমোডেলগুলিতে বিচ্ছিন্ন না হলে কোনও কিছু দর্শনের স্পর্শ না দেওয়া। এটি নিজেই করতে আমি পছন্দ করি। আমাকে এম 12 এলআরপিভির প্রশংসায় গ্রহণ করে তুমি আমাকে :-)
জোয়েল ওয়াহলুন্ড

7

"দয়া করে একটি আইটেম নির্বাচন করুন" দিয়ে

@Html.DropDownListFor(model => model.ContentManagement_Send_Section,
  new List<SelectListItem> { new SelectListItem { Value = "0", Text = "Plese Select one Item" } }
    .Concat(db.NameOfPaperSections.Select(x => new SelectListItem { Text = x.NameOfPaperSection, Value = x.PaperSectionID.ToString() })),
  new { @class = "myselect" })  

কোডগুলি থেকে উদ্ভূত: মাস্টার প্রোগ্রামার && জোএল Wahlund ;
কিং রেফারেন্স: https://stackoverflow.com/a/1528193/1395101 জারেড পার ;

ধন্যবাদ মাস্টার প্রোগ্রামার && জোএল Wahlund && JaredPar ;

শুভকামনা বন্ধুরা।


1
@using (Html.BeginForm()) {
    <p>Do you like pizza?
        @Html.DropDownListFor(x => x.likesPizza, new[] {
            new SelectListItem() {Text = "Yes", Value = bool.TrueString},
            new SelectListItem() {Text = "No", Value = bool.FalseString}
        }, "Choose an option") 
    </p>
    <input type = "submit" value = "Submit my answer" />
} 

আমি মনে করি যে এই উত্তরটি বেরেটের অনুরূপ, আপনি নিজের ড্রপডাউনলিস্টের জন্য সমস্ত কোড সরাসরি দৃষ্টিতে রেখেছেন। তবে আমি মনে করি এটি আই / এন (বুলিয়ান) ড্রপ ডাউন তালিকা তৈরির একটি কার্যকর উপায়, তাই আমি এটি ভাগ করতে চেয়েছিলাম।

নতুনদের জন্য কিছু নোট:

  • 'এক্স' কী বলা হয় তা নিয়ে চিন্তা করবেন না - এটি এখানে প্রথম তৈরি করা হয়েছে, এবং এমভিসি অ্যাপ্লিকেশনটিতে অন্য কোথাও কোনও কিছুর সাথে লিঙ্ক দেয় না, যাতে আপনি এটি যা চান - কল করতে পারেন - 'x', 'মডেল', 'মি' ইত্যাদি
  • ব্যবহারকারীরা ড্রপডাউন তালিকায় যে স্থানধারক দেখতে পাবেন তা হ'ল "একটি বিকল্প চয়ন করুন", তাই আপনি চাইলে এটি পরিবর্তন করতে পারেন।
  • ড্রপ ডাউন এর আগে বেশ কিছু পাঠ্য রয়েছে যা বলে যে "আপনি পিজ্জা পছন্দ করেন?"
  • আমার মনে হয় এটি কোনও জমা দেওয়ার বোতাম সহ কোনও ফর্মের সম্পূর্ণ পাঠ্য হওয়া উচিত

আশা করি এটি কাউকে সাহায্য করবে,

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.