ഡൈനാമിക് ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റുകൾ mvc c ഉദാഹരണങ്ങൾ തിരഞ്ഞെടുക്കുന്നു. മാറ്റാനാകാത്തത് മാറ്റാനാവാത്തതാണ്. കാഴ്ച ഡാറ്റ ദൃശ്യവൽക്കരിക്കുന്നു

എന്റെ കൺട്രോളറിൽ ഞാൻ ഇനിപ്പറയുന്ന SelectList സൃഷ്ടിക്കുകയാണ്.

Var u = പുതിയ NewUser(); u.UserTypeOptions = പുതിയ SelectList(പുതിയ ലിസ്റ്റ് (പുതിയ SelectListItem ( Selected = true, Text = string.Empty, Value = "-1"), പുതിയ SelectListItem ( Selected = false, Text = "Homeowner", Value = ((int) UserType.Homeowner).ToString()), പുതിയ SelectListItem ( Selected = false, Text = "Contractor", Value = ((int)UserType.Contractor).ToString()), )); തിരികെ യു;

എന്റെ കാഴ്ചയിൽ ഇത് ഇതുപോലെ കാണിക്കുന്നു:

@Html.DropDownListFor(m => m.UserType, Model.UserTypeOptions)

വളരെ ലളിതമായ ഒരു ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റിൽ സാധുതയുള്ള SelectListItem സെറ്റ് ഞാൻ നൽകുന്നതായി തോന്നുന്നു, എന്നാൽ നല്ല മൂല്യങ്ങളും വാചകവും ഉള്ള ഒരു സാധുവായ ലിസ്റ്റ് ലഭിക്കുന്നതിന് പകരം, എനിക്ക് ഇത് ലഭിക്കുന്നു:

System.Web.Mvc.SelectListItem System.Web.Mvc.SelectListItem System.Web.Mvc.SelectListItem

എന്താണ് നൽകുന്നത്? എനിക്ക് പറയാൻ കഴിയുന്നിടത്തോളം ഇത് പ്രവർത്തിക്കണം.

3 ഉത്തരങ്ങൾ

സെലക്ട് ലിസ്റ്റിൽ തന്നെ ഏത് ഫീൽഡിലും വാചകവും മൂല്യവും സജ്ജീകരിക്കാൻ നിങ്ങൾക്ക് കഴിഞ്ഞില്ല. അതുകൊണ്ടാണ് ലിസ്റ്റിലെ ഓരോ ഒബ്ജക്റ്റിനും ഒരു .ToString() ഉള്ളത്. ഇതൊരു SelectListItem ലിസ്റ്റായതിനാൽ, ഇത് കണ്ടുപിടിക്കാൻ അത് മിടുക്കനായിരിക്കണമെന്ന് നിങ്ങൾ വിചാരിക്കും... പക്ഷേ അങ്ങനെയല്ല.

(പുതിയ SelectListItem ( Selected = true, Text = string.Empty, Value = "-1"), പുതിയ SelectListItem ( Selected = false, Text = "Homeowner", Value = ((int)UserType.Homeowner).ToString()) , പുതിയ SelectListItem ( Selected = false, Text = "Contractor", Value = ((int)UserType.Contractor).ToString()), "മൂല്യം" , "ടെക്സ്റ്റ്", 1);

വഴിയിൽ, നിങ്ങൾക്ക് ഏത് തരത്തിലുമുള്ള അറേകളുടെ ഒരു ലിസ്റ്റ് ഉപയോഗിക്കാം... തുടർന്ന് പ്രോപ്പർട്ടികളുടെ പേര് വ്യക്തമാക്കുക, അത് വാചകമായും മൂല്യമായും പ്രവർത്തിക്കും.

ഇത് ഇതുപോലെ ചെയ്യുന്നതാണ് നല്ലതെന്ന് ഞാൻ കരുതുന്നു:

U.UserTypeOptions = പുതിയ SelectList(പുതിയ ലിസ്റ്റ് (പുതിയ SelectListItem (Text = "Homeowner", Value = ((int)UserType.Homeowner).ToString()), പുതിയ SelectListItem (Text = "Contractor", Value = ((int) UserType.Contractor).ToString()), "മൂല്യം" , "ടെക്സ്റ്റ്");

ഞാൻ -1 ഘടകം നീക്കം ചെയ്‌തു, ഓരോ ഘടകവും ശരി/തെറ്റായി സജ്ജീകരിച്ചിരിക്കുന്നു.

അപ്പോൾ, നിങ്ങളുടെ അഭിപ്രായത്തിൽ:

@Html.DropDownListFor(m => m.UserType, Model.UserTypeOptions, "ഒന്ന് തിരഞ്ഞെടുക്കുക")

അതിനാൽ നിങ്ങൾ Select One ഇനം സജ്ജീകരിക്കുകയും SelectList-ൽ തിരഞ്ഞെടുത്ത ഒരു ഇനം സജ്ജീകരിക്കാതിരിക്കുകയും ചെയ്താൽ, UserType ശൂന്യമായിരിക്കും (UserType int ആയിരിക്കണം?).

SelectList-ന്റെ തിരഞ്ഞെടുത്ത ഇനങ്ങളിലൊന്ന് നിങ്ങൾക്ക് സജ്ജീകരിക്കണമെങ്കിൽ, നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം:

U.UserTypeOptions = പുതിയ SelectList(ഓപ്ഷനുകൾ, "മൂല്യം" , "ടെക്സ്റ്റ്", userIdToBeSelected);

ഒരു റേസറിൽ ഇത് പരീക്ഷിക്കുക

@( var selectList = പുതിയ SelectList(പുതിയ ലിസ്റ്റ് ( പുതിയ SelectListItem (Text = "Google", Value = "Google"}, new SelectListItem {Text = "Other", Value = "മറ്റുള്ളവ"}, }, "Value", "Text"); } @Html.DropDownListFor(m => m.YourFieldName, selectList, "Default label", new { @class = "css-class" }) !}

@Html.DropDownList("ddlDropDownList", തിരഞ്ഞെടുത്ത ലിസ്റ്റ്, "Default label", പുതിയത് ( @class = "css-class" ))

Asp.Net ലിസ്റ്റ് എങ്ങനെ ഉപയോഗിക്കാം

ഒബ്‌ജക്‌റ്റുകളെ ഗ്രൂപ്പുചെയ്യുന്നതിനും അവയിൽ ജോലികൾ ചെയ്യുന്നതിനുമായി പ്രത്യേകം രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്ന ക്ലാസുകളുടെ ഒരു കൂട്ടമാണ് കളക്ഷൻ ക്ലാസുകൾ. ശേഖരത്തിലേക്ക് ഘടകങ്ങൾ ചേർക്കൽ, ശേഖരത്തിൽ നിന്ന് ഘടകങ്ങൾ നീക്കംചെയ്യൽ, ശേഖരണ എടിസിയിലെ ഘടകങ്ങളുടെ എണ്ണം നേടൽ എന്നിവയാണ് കളക്ഷൻ ക്ലാസുകളുടെ അടിസ്ഥാന പ്രവർത്തനം. ലിസ്റ്റ് ക്ലാസ് ഒരു ശേഖരണ അംഗമാണ് കൂടാതെ System.Collections.Generic നെയിംസ്പേസിൽ നിർവചിച്ചിരിക്കുന്നു.

C# ലിസ്റ്റ് ക്ലാസ് സൂചികയിലൂടെ ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന ഒബ്‌ജക്റ്റുകളുടെ ശക്തമായി ടൈപ്പ് ചെയ്‌ത ഒരു ലിസ്‌റ്റിനെ പ്രതിനിധീകരിക്കുന്നു. ഒരു പൂർണ്ണസംഖ്യ സൂചിക ഉപയോഗിച്ച് ലിസ്റ്റിലെ ഘടകങ്ങൾ ആക്സസ് ചെയ്യാൻ കഴിയും. ഈ ശേഖരത്തിലെ സൂചികകൾ പൂജ്യം അടിസ്ഥാനമാക്കിയുള്ളതാണ്.

ലിസ്റ്റിലെ ഘടകങ്ങളുടെ തരമാണ് ടി പാരാമീറ്റർ.

ലിസ്റ്റ് ശേഖരത്തിൽ ഇനങ്ങൾ ചേർക്കണോ?

ലിസ്റ്റ് ശേഖരത്തിൽ പൂർണ്ണസംഖ്യ മൂല്യങ്ങൾ ചേർക്കുക

സി# ലിസ്റ്റ്< int >intList = പുതിയ പട്ടിക< int >(); intList.Add(20); intList.Add(30); intList.Add(50); intList.Add(70); VB.Net Dim intList as New List(of Integer)() intList.Add(20) intList.Add(30) intList.Add(50) intList.Add(70)

പട്ടികയിൽ സ്ട്രിംഗ് മൂല്യങ്ങൾ ചേർക്കുക

C# മാസം.ചേർക്കുക("ജനുവരി"); മാസങ്ങൾ.ചേർക്കുക("ഫെബ്രുവരി"); മാസങ്ങൾ. ചേർക്കുക("മാർച്ച്"); മാസങ്ങൾ.ചേർക്കുക("ഏപ്രിൽ"); മാസങ്ങൾ. ചേർക്കുക ("മെയ്"); മാസങ്ങൾ. ചേർക്കുക("ജൂൺ"); VB.Net months.Add("January") months.Add("February") months.Add("March") months.Add("April") months.Add("May") months.Add("June" )

ഒരു ലിസ്റ്റിലെ മൂലകങ്ങളുടെ എണ്ണം നേടുകയാണോ?

ലിസ്റ്റ് ശേഖരത്തിലെ ഇനങ്ങളുടെ എണ്ണം അറിയാൻ നിങ്ങൾക്ക് "എണ്ണം" പ്രോപ്പർട്ടി ഉപയോഗിക്കാം

ലിസ്റ്റിൽ നിന്ന് ഇനങ്ങൾ വീണ്ടെടുക്കണോ?

ഫോർ ലൂപ്പുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ലിസ്റ്റ് ശേഖരത്തിൽ നിന്ന് ഇനങ്ങൾ വീണ്ടെടുക്കാം.

ഫോറെച്ച് ലൂപ്പ്

C# foreach (മാസങ്ങളിൽ സ്ട്രിംഗ് മാസം) ( MessageBox.Show(month); ) VB.Net ഓരോ മാസവും സ്ട്രിംഗ് ആയി മാസങ്ങളിൽ MessageBox.Show(മാസം) അടുത്തത്

ലൂപ്പിനായി

C# എന്നതിനുള്ള (int i = 0; i< months.Count; i++) { MessageBox.Show(months[i]); } VB.Net For i As Integer = 0 To months.Count - 1 MessageBox.Show(months(i)) Next

ലിസ്റ്റിൽ ഒരു ഇനം തിരുകണോ?

(സൂചിക, ഇനം) പോലെയുള്ള സൂചിക മൂല്യം വ്യക്തമാക്കിക്കൊണ്ട് നിങ്ങൾക്ക് ലിസ്റ്റിൽ ഒരു ഇനം ചേർക്കാൻ കഴിയും.

മുകളിലെ കോഡിൽ "മാർച്ച്" എന്ന മാസം സൂചികയുടെ സ്ഥാനം 2 ൽ ചേർത്തു.

ലിസ്റ്റ് ശേഖരത്തിൽ നിന്ന് ഒരു ഇനം നീക്കം ചെയ്യണോ?

ലിസ്റ്റ് ശേഖരത്തിൽ നിന്ന് ഇനം നീക്കംചെയ്യാൻ Remove() ഉപയോഗിക്കാം.

മാസങ്ങൾ.നീക്കം ചെയ്യുക("മാർച്ച്");

ലിസ്റ്റ് ശേഖരത്തിൽ ഒരു ഇനം അടങ്ങിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കണോ?

ലിസ്റ്റിൽ ഒരു ഇനം നിലവിലുണ്ടോ എന്ന് പരിശോധിക്കാൻ നിങ്ങൾക്ക് List.Contains() രീതികൾ ഉപയോഗിക്കാം

C# if (months.Contains("March")) ( MessageBox.Show("മാർച്ച് മാസം ലിസ്റ്റിൽ നിലവിലുണ്ട്"); ലിസ്റ്റിൽ നിലവിലുണ്ട്") എങ്കിൽ അവസാനം

ഒരു ലിസ്റ്റ് ശേഖരത്തിലേക്ക് ഒരു അറേ പകർത്തണോ?

C# string strArr = പുതിയ സ്ട്രിംഗ്; strArr = "ഞായറാഴ്ച"; strArr = "തിങ്കൾ"; strArr = "ചൊവ്വ"; //അറേ ലിസ്റ്റ് ലിസ്റ്റിലേക്ക് പകർത്താൻ ഇവിടെ< string >arrlist = പുതിയ പട്ടിക< string >(strArr); VB.Net Dim strArr As String() = New String(2) () strArr(0) = "ഞായറാഴ്ച" strArr(1) = "തിങ്കളാഴ്‌ച" strArr(2) = "ചൊവ്വാഴ്‌ച" "ഇവിടെ ഡിം അർലിസ്റ്റ് ലിസ്‌റ്റിലേക്ക് അറേ പകർത്താൻ പുതിയ ലിസ്റ്റായി(സ്‌ട്രിംഗിന്റെ)(strArr)

അവസാനമായി വ്യക്തമായ രീതി ലിസ്റ്റ് ശേഖരത്തിൽ നിന്ന് എല്ലാ ഇനങ്ങളും നീക്കം ചെയ്യുക.

ഇനിപ്പറയുന്ന പ്രോഗ്രാം ലിസ്റ്റ് ശേഖരങ്ങളിൽ ചില പ്രവർത്തനങ്ങൾ കാണിക്കുന്നു.

അഭിപ്രായങ്ങൾ: 0

ചിലപ്പോൾ ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റുകളിൽ പ്രവർത്തിക്കുന്നത് ചില ബുദ്ധിമുട്ടുകൾ ഉണ്ടാക്കുന്നു. ഒരു സംഗീത ട്രാക്ക് എഡിറ്റ് പേജ് സൃഷ്ടിക്കേണ്ട ഒരു ഉദാഹരണം നോക്കാം. ഓരോ കോമ്പോസിഷനും ഒരു ആൽബത്തിൽ അടങ്ങിയിരിക്കുന്നു, ഒരു പേരും നമ്പറും ഉണ്ട്. ഇനിപ്പറയുന്ന കോഡിൽ ഇത് ചിത്രീകരിക്കാം:

@Html.DropDownList("AlbumId", Model.Albums) ... @Html.TextBox("ശീർഷകം", Model.Title) ... @Html.TextBox("TrackNumber", Model.TrackNumber)

Html.DropDownList സഹായ രീതി SelectListItem ഒബ്‌ജക്‌റ്റുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു. അവതരണ മാതൃക ഇനിപ്പറയുന്ന രീതിയിൽ പ്രതിനിധീകരിക്കാം:

പബ്ലിക് ക്ലാസ് EditSongViewModel (പബ്ലിക് സ്‌ട്രിംഗ് ടൈറ്റിൽ (ഗെറ്റ്; സെറ്റ്;) പബ്ലിക് ഇൻറ്റ് ട്രാക്ക് നമ്പർ (ഗെറ്റ്; സെറ്റ്; ) പബ്ലിക് ഐഎന്യൂമറബിൾ ആൽബങ്ങൾ (ഗെറ്റ്; സെറ്റ്; ) )

കാഴ്ച മോഡലുകളിൽ SelectListItem തരങ്ങൾ ഉപയോഗിക്കുന്നത് ചില ഡവലപ്പർമാർ ഇഷ്ടപ്പെടുന്നില്ല, പകരം ശേഖരണ ഇനങ്ങൾ കാഴ്ചയിൽ നേരിട്ട് SelectListItems-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നു. എന്നാൽ വാസ്തവത്തിൽ, കാഴ്ച മോഡലിൽ SelectListItem ഉപയോഗിക്കുന്നത് വളരെ നല്ലതാണ്, കാരണം മോഡൽ കാഴ്ചകളിൽ തന്നെ കോഡ് ലളിതമാക്കണം.

SelectListItem ഒബ്ജക്റ്റുകളുടെ ഒരു ശേഖരം സൃഷ്ടിക്കുന്നു

SelectListItem ഒബ്ജക്റ്റുകളുടെ ക്രമങ്ങൾ സൃഷ്ടിക്കുന്നതിന് നിരവധി മാർഗങ്ങളുണ്ട്. എന്റിറ്റികളുടെ ശേഖരത്തെ SelectListItem ഒബ്‌ജക്‌റ്റുകളുടെ ഒരു ശേഖരമാക്കി മാറ്റുന്ന ക്രമത്തിൽ (ഞങ്ങളുടെ കാര്യത്തിൽ, ആൽബം ഒബ്‌ജക്‌റ്റുകൾ) ഒരു വിപുലീകരണ രീതി സൃഷ്‌ടിക്കുന്നതാണ് ഏറ്റവും ഉചിതമായ സമീപനം.

പൊതു സ്റ്റാറ്റിക്ക് IEnumerable ToSelectListItems(ഈ IEnumerable ആൽബങ്ങൾ, int selectedId) ( ആൽബങ്ങൾ തിരികെ നൽകുക.OrderBy(album => album.Name) .Select(album => new SelectListItem ( Selected = (album.ID == selectedId), Text = album. , മൂല്യം = album.ID.ToString() )); )

ഈ രീതി ഇതുപോലെ ഉപയോഗിക്കാം:

Model.Albums = _repository.FindAllAlbums().ToSelectItems(selectedId);

Html.DropDownList ഒരു IEnumerable ഒരു ഇൻപുട്ട് പാരാമീറ്ററായി എടുക്കുന്നതിനാൽ ഈ കോഡ് പ്രവർത്തിക്കുന്നു.

നിങ്ങൾക്ക് SelectList ക്ലാസ് ഉപയോഗിക്കാം, എന്നാൽ നിങ്ങൾ അത് ശ്രദ്ധാപൂർവ്വം ഉപയോഗിക്കേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്, നിങ്ങൾ SelectList-ൽ DataTextField, DataValueField പാരാമീറ്ററുകൾ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റ് ശരിയായി പ്രവർത്തിക്കില്ല.

// തെറ്റായ ഉപയോഗ മോഡൽ. ആൽബങ്ങൾ = പുതിയ SelectList(_repository.FindAllAlbums().ToSelectListItems(1));

ഓരോ ഇനത്തിന്റെയും വാചക നാമത്തിന് പകരം ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് "System.Web.Mvc.SelectListItem" പ്രദർശിപ്പിക്കും.

മുകളിലുള്ള ഞങ്ങളുടെ വിപുലീകരണ രീതിയുടെ അതേ ഉദ്ദേശ്യത്തോടെ (ഇനങ്ങളെ ഒരു SelectListItem ശേഖരത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന്) ഇനങ്ങളെ പരിവർത്തനം ചെയ്യുന്നതിനാണ് SelectList ക്ലാസ് രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നത്, എന്നാൽ ഇത് വൈകി ബൈൻഡിംഗ് ഉപയോഗിക്കുന്നു. ലിസ്റ്റ് ഇനങ്ങൾക്കായി ഞങ്ങൾ വിവരണവും മൂല്യ ഫീൽഡുകളും വ്യക്തമാക്കിയതിനാൽ ഇനിപ്പറയുന്ന കോഡ് പ്രവർത്തിക്കും.

// ശരിയായ ഉപയോഗ മോഡൽ. ആൽബങ്ങൾ = പുതിയ SelectList(_repository.FindAllAlbums(), "ID", "Name");

തിരഞ്ഞെടുത്ത മൂല്യം നേടുന്നു

പേജ് ഫോം ഡാറ്റ സ്വീകരിക്കാൻ ഇതേ കാഴ്‌ച മോഡൽ ഉപയോഗിക്കുകയാണെങ്കിൽ, സ്റ്റാൻഡേർഡ് ASP.NET MVC മൂല്യ ബൈൻഡർ ആൽബം ശേഖരണം പുനരാരംഭിക്കുകയും തിരഞ്ഞെടുത്ത ഒന്ന് സൂചിപ്പിക്കുകയും ചെയ്യുമെന്ന് പ്രതീക്ഷിക്കാം. പക്ഷേ, നിർഭാഗ്യവശാൽ, ഇത് അങ്ങനെയല്ല - ആൽബം ശേഖരം ശൂന്യമായിരിക്കും.

സെർവറിലേക്ക് തിരഞ്ഞെടുത്ത ആൽബത്തിന്റെ ഐഡന്റിഫയർ മാത്രമേ പേജ് അയയ്‌ക്കൂ. നിങ്ങൾക്ക് മോഡലിൽ ഈ മൂല്യം ലഭിക്കണമെങ്കിൽ, നിങ്ങൾ AlbumID പ്രോപ്പർട്ടി ചേർക്കേണ്ടതുണ്ട്.

പബ്ലിക് ക്ലാസ് EditSongViewModel ( public int AlbumId ( get; set; ) public string title ( get; set; ) public int TrackNumber ( get; set; ) public IEnumerable Albums ( get; set; ) ) കൂടാതെ, കാഴ്ചയിലെ കോഡിന് കഴിയും ഇതുപോലെ മാറ്റാം: @Html.DropDownListFor(x => x.AlbumId, Model.Albums) ... @Html.TextBoxFor(x => x.Title) ... @Html.TextBoxFor(x => x.TrackNumber )

അതിനാൽ, മുകളിൽ പറഞ്ഞവയുടെ പ്രധാന പോയിന്റുകൾ നമുക്ക് സംഗ്രഹിക്കാം:

  • DataTextField, DataValueField പ്രോപ്പർട്ടികൾ വ്യക്തമാക്കാതെ SelectList ഉപയോഗിക്കരുത്.
  • നിങ്ങൾ തിരികെ പ്രതികരിക്കുമ്പോൾ ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റിനായുള്ള ശേഖരം പോപ്പുലേഷനായി കാണുമെന്ന് പ്രതീക്ഷിക്കരുത്.
  • ശക്തമായി ടൈപ്പ് ചെയ്‌ത കോഡിൽ SelectListItem ഒബ്‌ജക്‌റ്റുകളുടെ സീക്വൻസുകൾ സൃഷ്‌ടിക്കാൻ വിപുലീകരണ രീതികൾ നിങ്ങളെ സഹായിക്കുന്നു.
  • Html.DropDownList-ന് ഒരു SelectList ആവശ്യമില്ല - SelectListItem ഒബ്‌ജക്റ്റുകളുടെ ഏതെങ്കിലും ശേഖരം ആവശ്യമായി വരും.

ഡൈനാമിക് ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റുകൾ (ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ്) ആദ്യ ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റിൽ നിന്ന് ഒരു ഇനം തിരഞ്ഞെടുക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു, ഇത് ആദ്യത്തേത് തിരഞ്ഞെടുക്കുന്നതിനെ അടിസ്ഥാനമാക്കി രണ്ടാമത്തെ ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റ് പോപ്പുലേറ്റ് ചെയ്യുന്നു. ഈ ലേഖനത്തിൽ, ASP.NET MVC 3 ചട്ടക്കൂട് ഉപയോഗിച്ച് ഡൈനാമിക് ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റുകൾ എങ്ങനെ നടപ്പിലാക്കാമെന്ന് കാണിക്കാൻ ഞങ്ങൾ ഉദ്ദേശിക്കുന്നു.

ഒരു കാഴ്ച മോഡൽ സൃഷ്ടിക്കുന്നു:

കാഴ്‌ചയ്‌ക്കുള്ള ഘടകങ്ങളെ പ്രതിനിധീകരിക്കുന്ന ഒരു വ്യൂ മോഡൽ സൃഷ്‌ടിക്കുക എന്നതാണ് ആദ്യപടി. ഞങ്ങളുടെ അവതരണ മോഡൽ വിഭാഗങ്ങളും ഉൽപ്പന്നങ്ങളും തമ്മിലുള്ള ബന്ധത്തെ ചുറ്റിപ്പറ്റിയാണ്. ഉപയോക്താവ് ഒരു ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റിൽ നിന്ന് ഒരു വിഭാഗം തിരഞ്ഞെടുക്കും, അത് മറ്റൊരു ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റിൽ പൊരുത്തപ്പെടുന്ന എല്ലാ ഉൽപ്പന്നങ്ങളും പോപ്പുലേറ്റ് ചെയ്യും. ചുവടെയുള്ള നടപ്പിലാക്കൽ ArticleEditViewModel കാണിക്കുന്നു:

സിസ്റ്റം ഉപയോഗിക്കുന്നു; System.Collections.Generic ഉപയോഗിക്കുന്നത്; System.ComponentModel.DataAnnotations ഉപയോഗിക്കുന്നു; System.Linq ഉപയോഗിക്കുന്നു; System.Web ഉപയോഗിക്കുന്നത്; System.Web.Mvc ഉപയോഗിക്കുന്നു; നെയിംസ്പേസ് MvcApplication1.ViewModels (പബ്ലിക് ക്ലാസ് ArticleEditViewModel (സ്വകാര്യ ലിസ്റ്റ് _വിഭാഗങ്ങൾ = പുതിയ ലിസ്റ്റ്(); സ്വകാര്യ ലിസ്റ്റ് _പ്രൊഡക്ട്സ് = പുതിയ ലിസ്റ്റ്(); പൊതു സ്ട്രിംഗ് തിരഞ്ഞെടുത്ത വിഭാഗം (നേടുക; സജ്ജമാക്കുക; ) പൊതു സ്ട്രിംഗ് തിരഞ്ഞെടുത്ത ഉൽപ്പന്നം (പബ്ലിക് സ്ട്രിംഗ് തിരഞ്ഞെടുത്ത ഉൽപ്പന്നം (പബ്ലിക് ഉൽപ്പന്നങ്ങൾ നേടുക; സെറ്റ്); (_products തിരികെ നൽകുക; ) ) പൊതു ലിസ്റ്റ് വിഭാഗങ്ങൾ ( (_categories.Add (പുതിയ SelectListItem())( ടെക്സ്റ്റ് = "റൂബി", മൂല്യം = "1")); _categories.Add(new SelectListItem())( Text = "JavaScript ", മൂല്യം="2")); തിരിച്ച് _വിഭാഗങ്ങൾ;))))

വിഭാഗങ്ങളുടെ ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റ് പൂരിപ്പിക്കുന്നു:

HomeController's Index പ്രവർത്തനം കാഴ്ചയ്ക്കായി ഒരു പുതിയ ArticleEditViewModel നൽകുന്നു. ഡ്രോപ്പ്‌ഡൗൺ ലിസ്‌റ്റ് പോപ്പുലേറ്റ് ചെയ്യുന്നതിന്, ArticleEditViewModel-ന്റെ വിഭാഗങ്ങളുടെ പ്രോപ്പർട്ടി കാഴ്ച ഉപയോഗിക്കുന്നു. സൂചിക പ്രവർത്തനം താഴെ നൽകിയിരിക്കുന്നു:

പൊതു പ്രവർത്തനഫല സൂചിക() ( റിട്ടേൺ വ്യൂ(പുതിയ ലേഖനം എഡിറ്റ് വ്യൂ മോഡൽ());

താഴെയുള്ള കോഡ് ഉപയോഗിച്ച് ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് നിറഞ്ഞിരിക്കുന്നു:

ഒരു വിഭാഗം തിരഞ്ഞെടുക്കുക: @Html.DropDownListFor(x => x.SelectedCategory, new SelectList(Model.Categories,"Value","Text"),"ദയവായി ഒരു വിഭാഗം തിരഞ്ഞെടുക്കുക") @Html.ValidationMessageFor(x => x. )

ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റ് വ്യൂ മോഡലിന്റെ തിരഞ്ഞെടുത്ത വിഭാഗം പ്രോപ്പർട്ടിയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. SelectedCategory പ്രോപ്പർട്ടി ഒരു (ആവശ്യമുള്ളത്) ആട്രിബ്യൂട്ട് കൊണ്ട് അലങ്കരിച്ചിരിക്കുന്നു, അത് തിരഞ്ഞെടുത്ത വിഭാഗം ശൂന്യമോ സ്ഥിരസ്ഥിതി മൂല്യമോ ഉള്ളതല്ലെന്ന് ഉറപ്പാക്കുന്നു. ഫോം പൂർത്തിയാകുമ്പോൾ കാറ്റഗറി ഡ്രോപ്പ്ഡൗൺ ലിസ്‌റ്റ് അതിന്റെ ഡിഫോൾട്ട് മൂല്യത്തിൽ ശേഷിക്കുമ്പോൾ പ്രവർത്തനക്ഷമമാകുന്ന ഒരു പരിശോധനയുടെ ഫലം ചുവടെയുള്ള സ്‌ക്രീൻഷോട്ട് കാണിക്കുന്നു.

"ഒരു വിഭാഗം തിരഞ്ഞെടുക്കുക" എന്ന ഡിഫോൾട്ട് ഓപ്‌ഷനുമായി ബന്ധപ്പെട്ട ഒരു മൂല്യവും ഇല്ലാത്തതിനാൽ പരിശോധന പരാജയപ്പെടുന്നു. ASP.NET MVC ശൂന്യമായ സ്‌ട്രിംഗ് തിരഞ്ഞെടുത്ത വിഭാഗ പ്രോപ്പർട്ടിയിലേക്ക് ബന്ധിപ്പിക്കാൻ ശ്രമിക്കുന്നു, പക്ഷേ SelectedCategory ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് അടയാളപ്പെടുത്തിയിരിക്കുന്നതിനാൽ കഴിയില്ല.

ഉൽപ്പന്നങ്ങളുടെ ഒരു ലിസ്റ്റ് വീണ്ടെടുക്കുകയും ആശ്രിത ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് ജനകീയമാക്കുകയും ചെയ്യുന്നു:

തിരഞ്ഞെടുത്ത വിഭാഗം നേടുക, തുടർന്ന് categoryId ഉപയോഗിച്ച് അനുബന്ധ ഉൽപ്പന്നങ്ങളുടെ ഒരു ലിസ്റ്റ് നേടുക എന്നതാണ് ഞങ്ങളുടെ അടുത്ത ചുമതല. ഞങ്ങളുടെ പ്രിയപ്പെട്ട JQuery ലൈബ്രറി ഉപയോഗിച്ച് ഒരു അജാക്സ് കോൾ വഴിയാണ് ഇത് ചെയ്യുന്നത്. ചുവടെയുള്ള നടപ്പാക്കൽ വിശദാംശങ്ങൾ കാണിക്കുന്നു.

$(document).ready(function () ( $("#SelectedCategory").change(function () ( $.get("/Home/GetProductsForCategory/" + $(this).val(), പ്രവർത്തനം (പ്രതികരണം) (var ഉൽപ്പന്നങ്ങൾ = $.evalJSON(പ്രതികരണം); var ddlSelectedProduct = $("#SelectedProduct"); // മുമ്പത്തെ എല്ലാ ഓപ്ഷനുകളും മായ്‌ക്കുക $("#SelectedProduct > option").remove(); // (i) എന്നതിനായുള്ള ഉൽപ്പന്നങ്ങൾ ജനകീയമാക്കുക = 0;ഐ< products.length; i++) { ddlSelectedProduct.append($("").val(products[i].Value).text(products[i].Text)); } }); }); });

മുകളിലെ കോഡ്, ഒരു ഇൻപുട്ട് പാരാമീറ്ററായി categoryId ഉള്ള GetProductsForCategory പ്രവർത്തനത്തെ വിളിക്കുന്നു. GetProductsForCategory ഉൽപ്പന്നങ്ങളുടെ ഒരു ലിസ്റ്റ് പ്രതിനിധീകരിക്കുന്ന ഒരു JSON പ്രതികരണം നൽകുന്നു. ഉൽപ്പന്നങ്ങൾക്കൊപ്പം ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് പോപ്പുലേറ്റ് ചെയ്യുന്നതിനുമുമ്പ്, നിലവിലുള്ള എല്ലാ ഇനങ്ങളും നീക്കം ചെയ്തുകൊണ്ട് ഞങ്ങൾ ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് മായ്‌ക്കുന്നു. GetProductsForCategory പ്രവർത്തനം ഇതുപോലെ പ്രവർത്തിക്കുന്നു:

പൊതു സ്ട്രിംഗ് GetProductsForCategory(string id) ( // റിപ്പോസിറ്ററി var ഉൽപ്പന്നങ്ങളിൽ നിന്ന് ഉൽപ്പന്നങ്ങൾ നേടുക = പുതിയ ലിസ്റ്റ്(); എങ്കിൽ (id == "1") ( products.Add(new SelectListItem() (Text = "റൂബിയിലേക്കുള്ള ആമുഖം" , മൂല്യം = "1")); product.Add(new SelectListItem() (Text = "Ruby Unit Testing", Value = "2")); ) else if(id == "2") ( products.Add( പുതിയ SelectListItem() ( Text = "JavaScript ടെസ്റ്റിംഗ്", Value = "1")); products.Add(new SelectListItem() (Text = "JavaScript Ninja", Value = "2")); ) പുതിയ JavaScriptSerializer() തിരികെ നൽകുക .സീരിയലൈസ് (ഉൽപ്പന്നങ്ങൾ); )

മുകളിലെ പ്രവർത്തനം കേവലം ഹാർഡ്-കോഡഡ് മൂല്യങ്ങൾ നൽകുന്നു, എന്നാൽ ഒരു യഥാർത്ഥ ആപ്ലിക്കേഷനിൽ നിങ്ങൾ സ്റ്റോറേജ് സിസ്റ്റത്തിൽ നിന്ന് ഉൽപ്പന്നങ്ങൾ ലഭ്യമാക്കും.

ചുവടെയുള്ള സ്ക്രീൻഷോട്ട് അന്തിമ ഫലം കാണിക്കുന്നു:

ഉപസംഹാരം:

ഈ ലേഖനത്തിൽ, ASP.NET MVC-യിൽ ഒരു ഡൈനാമിക് ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റ് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് ഞങ്ങൾ പഠിച്ചു. ഡൈനാമിക് ഡ്രോപ്പ്ഡൗൺ ലിസ്റ്റുകൾക്കായി ഒരു HtmlHelper സൃഷ്ടിച്ചുകൊണ്ട് ഈ സമീപനം എങ്ങനെ ലളിതമാക്കാമെന്ന് ഭാവിയിൽ ഞങ്ങൾ കാണിക്കും.

ജീവിതത്തിന്റെ ഓരോ മണിക്കൂറിന്റെയും അപകടത്തെക്കുറിച്ചുള്ള അവബോധം

മാറ്റാനാവാത്ത സംവേദനക്ഷമതയും അറിവും നൽകുന്നു.

ജീവിതത്തെക്കുറിച്ചുള്ള പഴഞ്ചൊല്ലുകൾ

വ്യക്തിത്വത്തിന്റെ ഒരു ഗുണമെന്ന നിലയിൽ മാറ്റാനാകാത്തത് പ്രവർത്തിക്കാനുള്ള കഴിവാണ്, വളരെ നിർണ്ണായകമായി തീരുമാനങ്ങൾ എടുക്കാനുള്ള കഴിവ്, ഒടുവിൽ ഒന്നും മാറില്ലെന്ന് എല്ലാവർക്കും വ്യക്തമാകും, ഇതാണ് അവസാന, അവസാന വാക്ക് അല്ലെങ്കിൽ പ്രവൃത്തി.

ഒരു സ്ത്രീക്ക് മാത്രമേ അവളുടെ അന്തിമവും മാറ്റാനാകാത്തതുമായ "ഒരുപക്ഷേ" പറയാൻ കഴിയൂ.

റഷ്യയിൽ, മോശം ഭാഷ മാറ്റാനാവാത്തവിധം നിരോധിച്ചു, ഒടുവിൽ എന്റെ ഭർത്താവ് എന്റെ അമ്മയോട് സംസാരിക്കുന്നത് നിർത്തി.

ഞാൻ ജീവിതത്തിൽ പൂർണ്ണമായും നിരാശനായിരുന്നു. നിങ്ങൾക്ക് ഒന്നിനെയും വിശ്വസിക്കാൻ കഴിയില്ല. ഞാൻ വാതിൽ തുറന്നു, അതിൽ "സ്ത്രീകൾ" എന്ന് എഴുതിയിരുന്നു, അവിടെ ഒരു ടോയ്ലറ്റ് ഉണ്ടായിരുന്നു!

എല്ലാ പാലങ്ങളും നിർണ്ണായകമായി കത്തിച്ചാൽ മാറ്റാനാവാത്തതാണ്. “പാലങ്ങൾ കത്തിക്കുക” - ജൂലിയസ് സീസറിൽ നിന്നാണ് ഈ പദപ്രയോഗം വന്നത്, അദ്ദേഹം പറഞ്ഞു: “എല്ലാ പാലങ്ങളും കത്തിച്ചു, റൂബിക്കോൺ മുറിച്ചുകടക്കണം.” സൈനിക പ്രവർത്തനങ്ങളിൽ, പാലങ്ങൾ രണ്ട് കേസുകളിൽ കത്തിച്ചു: - അങ്ങനെ പിൻവാങ്ങാനുള്ള പ്രലോഭനമില്ല; - അതുവഴി നിങ്ങൾക്ക് ശത്രുവിനെ പിന്തുടരുന്നതിൽ നിന്ന് രക്ഷപ്പെടാനും ഈ പാലത്തിന് മുന്നിൽ അവനെ തടയാനും കഴിയും. പിന്നീട് ഈ പ്രയോഗം സമാധാനപരമായ സംസാരമായി മാറി. എന്നാൽ അർത്ഥം സമാനമായി തുടർന്നു - ഭൂതകാലത്തിലേക്ക് മടങ്ങാൻ നിങ്ങളെ അനുവദിക്കാത്ത ഒരു പ്രവൃത്തി ചെയ്യുക, അതായത്, മാറ്റാനാവാത്ത എന്തെങ്കിലും ചെയ്യുക. തിരിച്ചുവരവിന്റെ പോയിന്റ് പാസാക്കിയ നടപടിയാണിത്. ഗൗളിലെ ജൂലിയസ് സീസർ ഇംഗ്ലീഷ് ചാനൽ കടന്ന് ഇപ്പോൾ ഇംഗ്ലണ്ട് എന്ന് വിളിക്കപ്പെടുന്ന രാജ്യത്ത് തന്റെ സൈന്യവുമായി ഇറങ്ങിയപ്പോൾ, ഡോവറിലെ ചോക്ക് പാറക്കെട്ടുകളിൽ തങ്ങാൻ അദ്ദേഹം തന്റെ സൈനികരോട് ആജ്ഞാപിച്ചു; കടലിൽ നിന്ന് ഇരുന്നൂറ് അടി ഉയരത്തിൽ നിന്ന് താഴേക്ക് നോക്കിയപ്പോൾ, അവർ വന്ന കപ്പലുകളെയെല്ലാം ദഹിപ്പിക്കുന്ന ജ്വാലയുടെ ചുവന്ന നാവുകൾ കണ്ടു. അവർ ഒരു ശത്രു രാജ്യത്തായിരുന്നു, ഭൂഖണ്ഡവുമായുള്ള അവസാന കണ്ണിയും അപ്രത്യക്ഷമായി, പിൻവാങ്ങാനുള്ള അവസാന മാർഗം കത്തിച്ചു, അവർക്ക് ചെയ്യാൻ ഒരു കാര്യം മാത്രമേ ശേഷിക്കുന്നുള്ളൂ: മുന്നേറുക, വിജയിക്കുക. അവർ വിജയിക്കുകയും ചെയ്തു.

"ദി സീഗൾ" എന്ന ചിത്രത്തിലെ ചെക്കോവിന്റെ നീന പറയുന്നു: "ഞാൻ തിരിച്ചെടുക്കാനാകാത്തവിധം തീരുമാനിച്ചു, ഡൈ ചെയ്തു, ഞാൻ സ്റ്റേജിൽ പോകുന്നു." ഒരു വാക്കിൽ പറഞ്ഞാൽ, പറഞ്ഞ വാക്ക് അവസാനവും അന്തിമവും നിർണ്ണായകവുമാണെന്ന് അപ്രസക്തമാക്കുന്നു.

ഇൻറർനെറ്റിലെ ഒരു സ്ത്രീ, അപ്രസക്തതയുടെ പശ്ചാത്തലത്തിൽ, ശരിയായതും വിവേകപൂർണ്ണവുമായ നിഗമനത്തിലെത്തുന്നു: “സ്നേഹത്തിന് ഒരു നിശ്ചിത സമയമില്ലെന്ന് എനിക്ക് അവസാനമായും മാറ്റാനാകാതെയും ബോധ്യപ്പെട്ടു. പ്ലാറ്റ്‌ഫോമിൽ നിൽക്കേണ്ട ആവശ്യമില്ല, വരുന്ന ഏതെങ്കിലും ട്രെയിനിൽ ഒതുങ്ങാൻ ശ്രമിക്കുന്നു. നിങ്ങളുടെ ഹൃദയത്തിന്റെ ഷെഡ്യൂൾ പിന്തുടരുക...” തിടുക്കപ്പെട്ട് നിരസിക്കാൻ മടിക്കുന്നതിനേക്കാൾ നിർണ്ണായകമായും അപ്രസക്തമായും നിരസിക്കുന്നതാണ് നല്ലത്. ഇക്കാലത്ത്, പെൺകുട്ടികൾ ചിലപ്പോൾ വളരെ ലജ്ജാശീലരാണ്, പുരുഷന്മാരെ തിരിച്ചെടുക്കാനാകാത്തവിധം നിരസിക്കാൻ അവർ ലജ്ജിക്കുന്നു.

നന്മയിൽ മാറ്റാനാകാത്തത് നിശ്ചയദാർഢ്യത്തിന്റെയും വഴക്കമില്ലായ്മയുടെയും മകളാണ്. മഹത്തായ ദേശസ്നേഹ യുദ്ധകാലത്തെ ബെലാറഷ്യൻ പ്രവർത്തനമാണ് എന്റെ അഭിപ്രായത്തിൽ എടുത്ത തീരുമാനത്തിന്റെ മാറ്റാനാവാത്തതിന്റെ പരകോടി. "എന്റെ ബാഗ്രേഷൻ" എന്നാണ് സ്റ്റാലിൻ റോക്കോസോവ്സ്കിയെ വിളിച്ചത്. രണ്ട് ബ്രിഡ്ജ്ഹെഡുകളിൽ നിന്ന് അഞ്ചാമത്തെ "സ്റ്റാലിനിസ്റ്റ് സമരം" നടത്താൻ റോക്കോസോവ്സ്കി നിർദ്ദേശിച്ചു, എന്നാൽ ആസ്ഥാനത്ത് അവർ സ്റ്റാലിൻ, സുക്കോവ് എന്നിവരും മറ്റുള്ളവരും ഉൾപ്പെടെ ഒരെണ്ണം നിർബന്ധിച്ചു.

സ്റ്റാലിനുമായി തർക്കിക്കുന്നത് അപകടകരമായ ഒരു കാര്യമാണ്, എന്നാൽ മാറ്റാനാവാത്ത ഒരു തീരുമാനം എടുക്കുമ്പോൾ, ഭയവും ഭയവും പശ്ചാത്തലത്തിലേക്ക് മങ്ങുന്നു. റോക്കോസോവ്സ്കി റിപ്പോർട്ട് ചെയ്തു: "സംയോജിത ദിശകളിൽ പ്രവർത്തിക്കുന്ന രണ്ട് സ്ട്രൈക്ക് ഗ്രൂപ്പുകൾ ഉപയോഗിച്ച് ശത്രുവിന്റെ പ്രതിരോധം തകർക്കാൻ ഞാൻ നിർദ്ദേശിക്കുന്നു: വടക്കുകിഴക്ക് നിന്ന് - ബോബ്രൂയിസ്ക്, ഒസിപോവിച്ചി, തെക്ക് നിന്ന് - ഒസിപോവിച്ചി വരെ."

ഈ തീരുമാനം സ്റ്റാലിന്റെ ചോദ്യത്തിന് പ്രേരിപ്പിച്ചു: "എന്തുകൊണ്ടാണ് നിങ്ങൾ മുന്നണിയുടെ ശക്തികളെ ചിതറിക്കുന്നത്?" അവരെ ഒരു ശക്തമായ മുഷ്ടിയാക്കി ഈ മുഷ്ടി കൊണ്ട് ശത്രുവിന്റെ പ്രതിരോധം കൊള്ളിക്കുന്നതല്ലേ നല്ലത്? നിങ്ങൾ ഒരിടത്ത് പ്രതിരോധം തകർക്കേണ്ടതുണ്ട്. - സഖാവ് സ്റ്റാലിൻ, രണ്ട് മേഖലകളിലെ പ്രതിരോധം തകർത്താൽ, നമുക്ക് കാര്യമായ നേട്ടങ്ങൾ കൈവരിക്കാനാകും. - ഏതാണ്? - ഒന്നാമതായി, രണ്ട് മേഖലകളിൽ പണിമുടക്കുന്നതിലൂടെ, ഞങ്ങൾ ഉടനടി വലിയ ശക്തികളെ പ്രവർത്തനത്തിലേക്ക് കൊണ്ടുവരുന്നു, തുടർന്ന് ശത്രുവിന് കരുതൽ ശേഖരം കൈകാര്യം ചെയ്യാനുള്ള അവസരം ഞങ്ങൾ നഷ്ടപ്പെടുത്തുന്നു, അതിൽ അദ്ദേഹത്തിന് ഇതിനകം കുറച്ച് മാത്രമേയുള്ളൂ. അവസാനമായി, നമ്മൾ ഒരു മേഖലയിലെങ്കിലും വിജയിച്ചാൽ, അത് ശത്രുവിനെ വിഷമകരമായ അവസ്ഥയിലാക്കും. മുൻനിരയിലുള്ള സൈനികർക്ക് വിജയം ഉറപ്പാക്കും. "എനിക്ക് തോന്നുന്നു," സ്റ്റാലിൻ നിർബന്ധിച്ചു, "പ്രഹരം ഒരിക്കൽ നൽകണം, കൂടാതെ മൂന്നാം സൈന്യത്തിന്റെ സെക്ടറിലെ ഡൈനിപ്പറിലെ ബ്രിഡ്ജ്ഹെഡിൽ നിന്ന്." അതിനാൽ, പോയി രണ്ട് മണിക്കൂർ ചിന്തിക്കുക, തുടർന്ന് നിങ്ങളുടെ ചിന്തകൾ ഹെഡ്ക്വാർട്ടേഴ്സിൽ അറിയിക്കുക.

റോക്കോസോവ്സ്കിയെ ഓഫീസിന് അടുത്തുള്ള ഒരു ചെറിയ മുറിയിലേക്ക് കൊണ്ടുപോയി. ഈ രണ്ട് മണിക്കൂർ കോൺസ്റ്റാന്റിൻ കോൺസ്റ്റാന്റിനോവിച്ചിന് ഒരു നിത്യതയായി തോന്നി. ഫ്രണ്ട് ഹെഡ്ക്വാർട്ടേഴ്സ് തയ്യാറാക്കിയ എല്ലാ കണക്കുകൂട്ടലുകളും അവൻ വീണ്ടും വീണ്ടും പരിശോധിച്ചു. സംശയമില്ല - രണ്ട് അടി വേണം. സ്റ്റാലിന്റെ ഓഫീസിൽ പ്രവേശിച്ച കോൺസ്റ്റാന്റിൻ കോൺസ്റ്റാന്റിനോവിച്ച് എല്ലായ്പ്പോഴും എന്നപോലെ ശാന്തനായി.

- സഖാവ് റോക്കോസോവ്സ്കി, നിങ്ങൾ പരിഹാരത്തെക്കുറിച്ച് ചിന്തിച്ചിട്ടുണ്ടോ? - അത് ശരിയാണ്, സഖാവ് സ്റ്റാലിൻ. - അപ്പോൾ, നമുക്ക് ഒന്നോ രണ്ടോ അടി കൊടുക്കണോ? - ജോസഫ് വിസാരിയോനോവിച്ച് കണ്ണിറുക്കി. ഓഫീസ് നിശബ്ദമായിരുന്നു.

"സഖാവ് സ്റ്റാലിൻ, രണ്ട് അടി കൊടുക്കുന്നതാണ് കൂടുതൽ ഉചിതമെന്ന് ഞാൻ വിശ്വസിക്കുന്നു." - അപ്പോൾ നിങ്ങൾ മനസ്സ് മാറ്റിയില്ലേ? - അതെ, എന്റെ തീരുമാനം നടപ്പിലാക്കാൻ ഞാൻ നിർബന്ധിക്കുന്നു. - ഡൈനിപ്പറിന് അപ്പുറത്തുള്ള ബ്രിഡ്ജ്ഹെഡിൽ നിന്നുള്ള ആക്രമണത്തിൽ എന്തുകൊണ്ടാണ് നിങ്ങൾ തൃപ്തനാകാത്തത്? നിങ്ങൾ നിങ്ങളുടെ ശക്തി പാഴാക്കുന്നു! - ശക്തികളുടെ ഒരു ചിതറിപ്പോയുണ്ടാകും, സഖാവ് സ്റ്റാലിൻ, ഞാൻ ഇതിനോട് യോജിക്കുന്നു. എന്നാൽ ബെലാറസിന്റെ ഭൂപ്രദേശം, ചതുപ്പുകൾ, വനങ്ങൾ, ശത്രു സൈനികരുടെ സ്ഥാനം എന്നിവ കണക്കിലെടുത്ത് ഇത് ചെയ്യണം. ഡൈനിപ്പറിനപ്പുറമുള്ള മൂന്നാം ആർമിയുടെ ബ്രിഡ്ജ്ഹെഡിനെ സംബന്ധിച്ചിടത്തോളം, ഈ ദിശയുടെ പ്രവർത്തന ശേഷി ചെറുതാണ്, അവിടെയുള്ള ഭൂപ്രദേശം അങ്ങേയറ്റം ബുദ്ധിമുട്ടാണ്, വടക്ക് നിന്ന് ശക്തമായ ഒരു ശത്രു സംഘം ഉയർന്നുവരുന്നു, അത് അവഗണിക്കാൻ കഴിയില്ല. “പോകൂ, വീണ്ടും ചിന്തിക്കൂ,” സ്റ്റാലിൻ ഉത്തരവിട്ടു. - നിങ്ങൾ വെറുതെ ശാഠ്യം പിടിക്കുകയാണെന്ന് എനിക്ക് തോന്നുന്നു.

ഒരിക്കൽ കൂടി റോക്കോസോവ്സ്കി തനിച്ചാണ്, വീണ്ടും അവൻ എല്ലാ ഗുണദോഷങ്ങളും ഒന്നിനുപുറകെ ഒന്നായി ചിന്തിക്കുകയും തന്റെ അഭിപ്രായത്തിൽ വീണ്ടും ശക്തനാകുകയും ചെയ്യുന്നു: അദ്ദേഹത്തിന്റെ തീരുമാനം ശരിയും അപ്രസക്തവുമാണ്. അദ്ദേഹത്തെ ഓഫീസിലേക്ക് തിരികെ ക്ഷണിച്ചപ്പോൾ, രണ്ട് സമരങ്ങൾക്കായി തന്റെ വാദം കഴിയുന്നത്ര ബോധ്യപ്പെടുത്താൻ അദ്ദേഹം ശ്രമിച്ചു. റോക്കോസോവ്സ്കി സംസാരിച്ചു തീർന്നു, ഒരു താൽക്കാലിക വിരാമമുണ്ടായി. സ്റ്റാലിൻ നിശബ്ദമായി തന്റെ പൈപ്പ് മേശപ്പുറത്ത് കത്തിച്ചു, എന്നിട്ട് എഴുന്നേറ്റു നിന്ന് കോൺസ്റ്റാന്റിൻ കോൺസ്റ്റാന്റിനോവിച്ചിനെ സമീപിച്ചു: "ആക്രമണത്തിന്റെ ഓർഗനൈസേഷൻ ശ്രദ്ധാപൂർവ്വം ചിന്തിച്ചിട്ടുണ്ടെന്ന് ഫ്രണ്ട് കമാൻഡറുടെ സ്ഥിരോത്സാഹം തെളിയിക്കുന്നു." ഇത് വിജയത്തിന്റെ ഒരു ഉറപ്പാണ്. നിങ്ങളുടെ തീരുമാനം സ്ഥിരീകരിച്ചു, സഖാവ് റോക്കോസോവ്സ്കി.