Orodha kunjuzi zinazobadilika chagua mifano ya mvc c. Kutenguliwa hakuwezi kubatilishwa. Kuangazia data ya mwonekano

Ninaunda SelectList ifuatayo kwenye kidhibiti changu.

Var u = NewUser(); u.UserTypeOptions = new SelectList(Orodha mpya (SelectListItem mpya (Imechaguliwa = kweli, Nakala = kamba.Tupu, Thamani = "-1"), SelectListItem mpya ( Imechaguliwa = uongo, Maandishi = "Mmiliki wa Nyumba", Thamani = ((int) UserType.Homeowner).ToString()), SelectListItem mpya (Imechaguliwa = uongo, Maandishi = "Mkandarasi", Thamani = ((int)UserType.Contractor).ToString()), )); kurudi u;

Na kuionyesha kwa mtazamo wangu kama hii:

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

Inaonekana ninaipa SelectListItem halali iliyowekwa katika kile kinachopaswa kuwa orodha rahisi ya kushuka, lakini badala ya kupata orodha halali iliyo na maadili mazuri na maandishi, ninapata hii:

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

Anatoa nini? Kwa kadiri ninavyoweza kusema hii inapaswa kufanya kazi.

3 majibu

Hukuweza kuweka ni sehemu gani Maandishi na Thamani yamo katika SelectList yenyewe. Ndiyo maana ina .ToString() kwa kila kitu kwenye orodha. Utafikiria kwamba, ikizingatiwa kuwa ni orodha ya SelectListItem, inapaswa kuwa na akili ya kutosha kugundua hii ... lakini sivyo.

( SelectListItem mpya ( Imechaguliwa = kweli, Nakala = kamba. Tupu, Thamani = "-1"), SelectListItem mpya ( Imechaguliwa = uongo, Maandishi = "Mmiliki wa Nyumba", Thamani = ((int)UserType.Homeowner).ToString()) , SelectListItem mpya ( Selected = false, Text = "Contractor", Value = ((int)UserType.Contractor).ToString()), "Thamani" , ​​"Text", 1);

Kwa njia, unaweza kutumia orodha ya safu za aina yoyote ... na kisha taja tu jina la mali, ambalo litafanya kama maandishi na thamani.

Nadhani ni bora kuifanya kama hii:

U.UserTypeOptions = new SelectList(Orodha mpya ( new SelectListItem ( Text = "Homeowner", Value = ((int)UserType.Homeowner).ToString()), SelectListItem mpya ( Text = "Contractor", Value = ((int) UserType.Contractor).ToString()), ), "Thamani" , ​​"Nakala");

Niliondoa kipengee cha -1 na kila kipengele kimewekwa kuwa kweli/uongo.

Kisha, kwa maoni yako:

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

Kwa hivyo ukiweka kipengee cha Chagua Moja na hutaweka kipengee kimoja kilichochaguliwa katika SelectList, UserType itakuwa tupu (UserType inapaswa kuwa int?).

Ikiwa unahitaji kuweka mojawapo ya vipengee vilivyochaguliwa vya SelectList, unaweza kutumia:

U.UserTypeOptions = new SelectList(options, "Value" , ​​"Text", userIdToBeSelected);

Jaribu tu kwenye wembe

@( var selectList = SelectList mpya (Orodha mpya ( SelectListItem mpya ( Nakala = "Google", Value = "Google)"}, new SelectListItem {Text = "Other", Value = "Nyingine"}, }, "Value", "Text"); } @Html.DropDownListFor(m => m.YourFieldName, selectList, "Default label", new { @class = "css-class" }) !}

@Html.DropDownList("ddlDropDownList", selectList, "Lebo chaguomsingi", mpya ( @class = "css-class"))

Jinsi ya kutumia Orodha ya Asp.Net

Madarasa ya Mkusanyiko ni seti ya madarasa iliyoundwa mahsusi kwa kuweka pamoja vitu na kutekeleza majukumu juu yao. Utendaji msingi wa madarasa ya mkusanyiko ni Kuongeza vipengele kwenye Mkusanyiko, Kuondoa vipengele kwenye mkusanyiko, Kupata idadi ya vipengele katika mkusanyiko atc. Darasa la orodha ni mwanachama wa Mkusanyiko na limefafanuliwa katika nafasi ya majina ya System.Collections.Generic.

Darasa la Orodha ya C # linawakilisha orodha iliyochapwa sana ya vitu ambavyo vinaweza kufikiwa na faharasa. Vipengele katika Orodha vinaweza kufikiwa kwa kutumia faharasa kamili. Faharasa katika mkusanyiko huu ni msingi sifuri.

Kigezo T ni aina ya vipengele katika orodha.

Ongeza vipengee katika mkusanyiko wa Orodha ?

Ongeza nambari kamili katika mkusanyiko wa Orodha

Orodha ya C #< int >intList = Orodha mpya< int >(); intList.Ongeza(20); intList.Ongeza(30); intList.Ongeza(50); intList.Ongeza(70); VB.Net Dim intList Kama Orodha Mpya(Ya Integer)() intList.Add(20) intList.Add(30) intList.Add(50) intList.Add(70)

Ongeza maadili ya Kamba kwenye Orodha

C # miezi.Ongeza("Januari"); miezi.Ongeza("Frebruary"); miezi.Ongeza("Machi"); miezi.Ongeza("Aprili"); miezi.Ongeza("Mei"); miezi.Ongeza("Juni"); VB.Net miezi.Ongeza("Januari") miezi.Ongeza("Frebruary") miezi.Ongeza("Machi") miezi.Ongeza("Aprili") miezi.Ongeza("Mei") miezi.Ongeza("Juni" )

Kupata idadi ya vipengele kwenye Orodha?

Unaweza kutumia kipengele cha "hesabu" ili kujua idadi ya vitu kwenye mkusanyiko wa Orodha

Rejesha vipengee kutoka kwa Orodha ?

Unaweza kupata vitu kutoka kwa mkusanyiko wa Orodha kwa kutumia vitanzi.

kitanzi cha mbele

C# foreach (kamba mwezi katika miezi) ( MessageBox.Show(mwezi); ) VB.Net Kwa Kila mwezi As String In months MessageBox.Show(mwezi) Inayofuata

kwa kitanzi

C# kwa (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

Je, ungependa kuingiza kipengee kwenye Orodha?

Unaweza kuingiza kipengee kwenye Orodha kwa kubainisha thamani yake ya faharasa kama (index,item) .

Katika nambari iliyo hapo juu mwezi "Machi" umeingizwa katika nafasi ya index 2.

Ungependa kuondoa kipengee kutoka kwenye mkusanyiko wa Orodha ?

Remove() inaweza kutumika kuondoa kipengee kutoka kwa mkusanyiko wa Orodha.

miezi.Ondoa("Machi");

Angalia ikiwa kipengee kina katika mkusanyiko wa Orodha?

Unaweza kutumia njia za List.Contains() kuangalia kipengee kipo kwenye Orodha

C# ikiwa (months.Contains("Machi")) ( MessageBox.Show("Mwezi wa Machi upo kwenye Orodha"); ) VB.Net If months.Contains("March") Kisha MessageBox.Show("Mwezi Machi ipo kwenye Orodha") Maliza Kama

Je, ungependa kunakili Mkusanyiko kwa Mkusanyiko wa Orodha?

C # kamba strArr = kamba mpya; strArr = "Jumapili"; strArr = "Jumatatu"; strArr = "Jumanne"; //hapa kunakili safu kwenye Orodha ya Orodha< string >arrlist = Orodha mpya< string >(strArr); VB.Net Dim strArr As String() = New String(2) () strArr(0) = "Jumapili" strArr(1) = "Jumatatu" strArr(2) = "Jumanne" "hapa kunakili safu kwenye orodha ya orodha ya Dim Kama Orodha Mpya(Ya Kamba)(strArr)

Mwishowe njia iliyo wazi ondoa vitu vyote kutoka kwa mkusanyiko wa Orodha.

Programu ifuatayo inaonyesha shughuli fulani katika makusanyo ya Orodha.

Maoni: 0

Wakati mwingine kufanya kazi na orodha kunjuzi husababisha ugumu fulani. Hebu tuangalie mfano ambapo tunahitaji kuunda ukurasa wa kuhariri wimbo. Kila muundo uliomo kwenye albamu, una jina na nambari. Hii inaweza kuonyeshwa katika nambari ifuatayo:

@Html.DropDownList("AlbumId", Model.Albums) ... @Html.TextBox("Title", Model.Title) ... @Html.TextBox("TrackNumber", Model.TrackNumber)

Mbinu ya msaidizi ya Html.DropDownList hufanya kazi na vipengee vya SelectListItem. Mfano wa uwasilishaji unaweza kuwakilishwa kama ifuatavyo:

Darasa la umma EditSongViewModel ( Kichwa cha kamba ya umma ( pata; weka; ) TrackNumber ya umma ya int ( pata; weka; ) Albamu za IEnumerable za umma ( pata; weka; ) )

Wasanidi wengine hawapendi kutumia aina za SelectListItem katika miundo ya mwonekano na badala yake kubadilisha vipengee vya mkusanyiko hadi SelectListItems moja kwa moja kwenye mwonekano. Lakini kwa kweli, ni vyema kutumia SelectListItem katika modeli ya kutazama, kwani mfano unapaswa kurahisisha msimbo katika maoni yenyewe.

Kuunda mkusanyiko wa vitu vya SelectListItem

Kuna njia kadhaa za kuunda mlolongo wa vitu vya SelectListItem. Mbinu inayofaa zaidi inaweza kuwa kuunda mbinu ya kiendelezi kwenye mlolongo (kwa upande wetu, vitu vya Albamu) ambayo inabadilisha mkusanyiko wa vyombo kuwa mkusanyiko wa vitu vya SelectListItem.

IEnumerable ToSelectListItems ya umma (hii IEnumerable albums, int selectedId) ( rudisha albamu.OrderBy(album => album.Name) .Select(album => new SelectListItem ( Iliyochaguliwa = (album.ID == selectedId), Text = album.Name , Thamani = album.ID.ToString() )); )

Mbinu hii inaweza kutumika kama hii:

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

Msimbo huu hufanya kazi kwa sababu Html.DropDownList inachukua IEnumerable kama kigezo cha ingizo.

Unaweza kutumia darasa la SelectList, lakini unahitaji kuitumia kwa uangalifu. Kwa mfano, ikiwa hutabainisha vigezo vya DataTextField na DataValueField katika SelectList, orodha kunjuzi haitafanya kazi ipasavyo.

// modeli ya matumizi yasiyo sahihi.Albamu = SelectList mpya(_repository.FindAllAlbums().ToSelectListItems(1));

Orodha kunjuzi itaonyesha "System.Web.Mvc.SelectListItem" badala ya jina la maandishi la kila kipengee.

Darasa la SelectList limeundwa kubadilisha vipengee, kwa madhumuni sawa na mbinu yetu ya kiendelezi hapo juu (kubadilisha vipengee kuwa mkusanyiko wa SelectListItem), lakini hutumia ufungaji wa kuchelewa. Msimbo ufuatao utafanya kazi kwa kuwa tumebainisha sehemu za maelezo na thamani za bidhaa za orodha.

// muundo sahihi wa matumizi.Albamu = Orodha mpya ya Chagua(_repository.FindAllAlbums(), "ID", "Jina");

Kupata thamani iliyochaguliwa

Iwapo muundo wa mwonekano sawa unatumiwa kukubali data ya fomu ya ukurasa, basi unaweza kutarajia kifunga thamani cha kawaida cha ASP.NET MVC kuanzisha upya mkusanyiko wa albamu na kuonyesha ulichochagua. Lakini, kwa bahati mbaya, hii sivyo - mkusanyiko wa albamu utakuwa tupu.

Ukurasa utatuma tu kitambulisho cha albamu iliyochaguliwa kwa seva. Ikiwa unahitaji kupata thamani hii katika mfano, unahitaji kuongeza sifa ya AlbumID.

Darasa la umma EditSongViewModel ( public int AlbumId ( get; set; ) public string Title ( get; set; ) public int TrackNumber ( get; set; ) IEnumerable Albamu za umma ( get; set; ) ) Na zaidi ya hayo, msimbo kwenye mwonekano unaweza ibadilishwe hivi: @Html.DropDownListFor(x => x.AlbumId, Model.Albamu) ... @Html.TextBoxFor(x => x.Title) ... @Html.TextBoxFor(x => x.TrackNumber) )

Kwa hivyo, wacha tufanye muhtasari wa mambo kuu ya hapo juu:

  • Usitumie SelectList bila kubainisha sifa za DataTextField na DataValueField.
  • Usitarajie kuona mkusanyiko wa orodha kunjuzi ukijaa unapojibu.
  • Mbinu za kiendelezi hukusaidia kuunda mfuatano wa vitu vya SelectListItem katika msimbo ulioandikwa kwa nguvu.
  • Html.DropDownList haihitaji SelectList - mkusanyiko wowote wa vitu vya SelectListItem utafanya.

Orodha za kunjuzi zinazobadilika (DropDownList) huruhusu mtumiaji kuchagua kipengee kutoka kwenye orodha kunjuzi ya kwanza, ambayo hujaza orodha kunjuzi ya pili kulingana na uteuzi katika ya kwanza. Katika makala haya, tunanuia kuonyesha jinsi ya kutekeleza orodha kunjuzi zinazobadilika kwa kutumia mfumo wa ASP.NET MVC 3.

Kuunda muundo wa kutazama:

Hatua ya kwanza ni kuunda ViewModel, ambayo inawakilisha vitu vya mwonekano. Muundo wetu wa uwasilishaji unahusu uhusiano kati ya kategoria na bidhaa. Mtumiaji atachagua aina kutoka orodha kunjuzi, ambayo itajaza bidhaa zote zinazolingana katika orodha nyingine kunjuzi. Utekelezaji ulio hapa chini unaonyesha ArticleEditViewModel:

Kutumia Mfumo; kwa kutumia System.Collections.Generic; kwa kutumia System.ComponentModel.DataAnnotations; kwa kutumia System.Linq; kwa kutumia System.Web; kwa kutumia System.Web.Mvc; namespace MvcApplication1.ViewModels ( class ya umma ArticleEditViewModel ( private List _categories = new List(); private List _products = new List(); public string SelectedCategory ( get; set; ) public string SelectedProduct ( get; set; ) public List Products ( pata ( return _products; ) ) Vitengo vya Orodha za umma ( pata ( _categories.Ongeza(New SelectListItem())( Text = "Ruby", Value = "1")); _categories.Ongeza(SelectListItem())(News SelectListItem())( Text = "JavaScript) ", Thamani="2")); rudisha _categories; ) ) ) )

Kujaza orodha kunjuzi ya kategoria:

Kitendo cha Kielezo cha HomeController hurejesha ArticleEditViewModel mpya kwa mwonekano. Mwonekano hutumia kipengele cha Vitengo cha ArticleEditViewModel ili kujaza orodha kunjuzi. Kitendo cha Index kinatolewa hapa chini:

Public ActionResult Index() ( return View(new ArticleEditViewModel()); )

Orodha kunjuzi imejaa nambari iliyo hapa chini:

Chagua kategoria: @Html.DropDownListFor(x => x.SelectedCategory, new SelectList(Model.Categories,"Thamani","Text"),"Tafadhali Chagua kategoria") @Html.ValidationMessageFor(x => x.SelectedCategory) )

Orodha kunjuzi inahusishwa na kipengele cha SelectedCategory cha modeli ya kutazama. Sifa ya SelectedCategory pia imepambwa kwa sifa (inahitajika), ambayo inahakikisha kuwa Kitengo Kilichochaguliwa hakijaachwa tupu au kwa thamani chaguo-msingi. Picha ya skrini iliyo hapa chini inaonyesha matokeo ya ukaguzi unaoanzishwa wakati orodha kunjuzi ya kategoria ikiachwa katika thamani yake chaguomsingi wakati fomu imekamilika.

Hundi imeshindwa kwa sababu chaguo-msingi "Chagua kategoria" haina thamani yoyote inayohusishwa nayo. ASP.NET MVC inajaribu kufunga mfuatano tupu kwa kipengele cha SelectedCategory, lakini haiwezi kwa sababu SelectedCategory imewekwa alama ya sifa.

Kurejesha orodha ya bidhaa na kujaza orodha tegemezi kunjuzi:

Kazi yetu inayofuata ni kupata kategoria iliyochaguliwa na kisha kupata orodha ya bidhaa zinazohusiana kwa kutumia kitengoId. Hii itafanywa kupitia simu ya Ajax kwa kutumia maktaba yetu tunayopenda ya JQuery. Utekelezaji hapa chini unaonyesha maelezo.

$(document).ready(function () ( $("#SelectedCategory").change(function () ( $.get("/Home/GetProductsForCategory/" + $(this).val(), chaguo la kukokotoa (jibu) ( var products = $.evalJSON(response); var ddlSelectedProduct = $("#SelectedProduct"); // futa chaguo zote za awali $("#SelectedProduct > chaguo").remove(); // jaza bidhaa kwa (i) = 0;i< products.length; i++) { ddlSelectedProduct.append($("").val(products[i].Value).text(products[i].Text)); } }); }); });

Nambari iliyo hapo juu inaita hatua ya GetProductsForCategory na kitengoId kama kigezo cha kuingiza. GetProductsForCategory hurejesha jibu la JSON ambalo linawakilisha orodha ya bidhaa. Kabla ya kujaza orodha kunjuzi kwa bidhaa, tunafuta orodha kunjuzi kwa kuondoa vipengee vyote vilivyopo. Kitendo cha GetProductsForCategory hufanya kazi kama hii:

Mfuatano wa umma GetProductsForCategory(kitambulisho cha kamba) ( // pata bidhaa kutoka kwa ghala var products = new List(); ikiwa (id == "1") ( products.Add(new SelectListItem() (Text = "Introduction to Ruby" , Thamani = "1")); products.Add(new SelectListItem() (Text = "Ruby Unit Testing", Value = "2"));) vinginevyo if(id == "2") ( products.Add( new SelectListItem() ( Text = "Javascript testing",Value = "1")); products.Ongeza(New SelectListItem() ( Text = "JavaScript Ninja", Value = "2")); ) rudisha JavaScriptSerializer mpya() .Sawazisha(bidhaa); )

Kitendo kilicho hapo juu kinarejesha tu thamani zilizo na msimbo mgumu, lakini katika programu-tumizi halisi utakuwa unaleta bidhaa kutoka kwa mfumo wa hifadhi.

Picha ya skrini hapa chini inaonyesha matokeo ya mwisho:

Hitimisho:

Katika makala hii, tulijifunza jinsi ya kuunda orodha ya kushuka kwa nguvu katika ASP.NET MVC. Katika siku zijazo tutaonyesha jinsi ya kurahisisha mbinu hii kwa kuunda HtmlHelper kwa orodha zinazobadilika kunjuzi.

Ufahamu wa hatari ya kila saa ya maisha

inatoa usikivu na maarifa ya kutoweza kubatilishwa.

Aphorisms kuhusu maisha

Kutobadilika kama ubora wa utu ni uwezo wa kutenda, kufanya maamuzi kwa uamuzi na hatimaye kwamba inakuwa wazi kwa kila mtu kuwa hakuna kitakachobadilishwa, hili ni neno la mwisho, la mwisho au tendo.

Mwanamke pekee ndiye anayeweza kusema "Labda" yake ya mwisho na isiyoweza kubatilishwa.

Huko Urusi, lugha chafu ilipigwa marufuku kabisa, mume wangu aliacha kuongea na mama yangu.

Nilikatishwa tamaa maishani bila kubadilika. Huwezi kuamini chochote. Nilifungua mlango, ambao ulikuwa na maandishi "Wanawake", na kulikuwa na choo!

Kutoweza kutenduliwa ni wakati madaraja yote yanachomwa moto. "Choma madaraja" - usemi huu ulitujia kutoka kwa Julius Caesar, ambaye alisema: "Madaraja yote yamechomwa, Rubicon lazima ivukwe." Wakati wa shughuli za kijeshi, madaraja yalichomwa katika matukio mawili: - ili hakuna jaribu la kurudi nyuma; - ili uweze kuepuka harakati za adui na kumtia kizuizini mbele ya daraja hili. Baadaye usemi huu uligeuka kuwa hotuba ya amani. Lakini maana ilibaki sawa - kufanya kitendo ambacho hakitakuruhusu kurudi zamani, ambayo ni, kufanya kitu kisichoweza kubadilika. Hiki ni kitendo ambacho hatua yake ya kutorudishwa imepitishwa. Julius Kaisari wa Gaul alipovuka Mfereji wa Kiingereza na kutua pamoja na majeshi yake katika nchi ambayo sasa inaitwa Uingereza, aliamuru askari wake kusimama kwenye miamba ya chaki ya Dover; wakitazama chini kutoka urefu wa futi mia mbili juu ya bahari, waliona ndimi nyekundu za miali ya moto zikiteketeza meli zote walizokuwa wamefika. Walikuwa katika nchi ya adui, kiungo cha mwisho na bara kilikuwa kimetoweka, njia ya mwisho ya kurudi nyuma ilikuwa imechomwa, na kulikuwa na jambo moja tu lililobaki kwao: kusonga mbele na kushinda. Na walishinda.

Nina wa Chekhov katika "Seagull" anasema: "Nimeamua bila kubatilishwa, kifo kimetupwa, ninaenda kwenye hatua." Kwa neno moja, kutoweza kubatilishwa kunaonyesha kwamba neno lililonenwa ni la mwisho, la mwisho na la maamuzi.

Mwanamke kwenye Mtandao, katika muktadha wa kutoweza kubatilishwa, hufanya hitimisho sahihi na la busara: "Hatimaye ninasadiki kabisa kwamba upendo hauna wakati maalum wa kuwasili. Hakuna haja ya kusimama kwenye jukwaa, kujaribu kutoshea ndani ya treni yoyote inayowasili. Fuata ratiba ya moyo wako...” Ni bora kukataa kwa uamuzi na bila kubatilishwa kuliko kukimbilia na kusitasita kukataa. Siku hizi, wasichana wakati mwingine ni aibu sana hivi kwamba wanaona aibu kukataa wanaume bila kubatilishwa.

Kutobadilika katika wema ni binti wa dhamira na kutobadilika. Kilele cha kutobadilika kwa uamuzi uliofanywa, kwa maoni yangu, ni operesheni ya Kibelarusi wakati wa Vita Kuu ya Patriotic. "Uhamisho Wangu" ni jinsi Stalin alimwita Rokossovsky. Rokossovsky alipendekeza kutekeleza mgomo wa tano wa "Stalinist" kutoka kwa madaraja mawili, lakini katika Makao Makuu walisisitiza moja, pamoja na Stalin, Zhukov na wengine.

Kubishana na Stalin ni jambo hatari, lakini uamuzi usioweza kubatilishwa unapofanywa, hofu na woga hufifia nyuma. Rokossovsky aliripoti: "Ninapendekeza kuvunja ulinzi wa adui na vikundi viwili vya mgomo vinavyofanya kazi katika mwelekeo wa kubadilishana: kutoka kaskazini mashariki - hadi Bobruisk, Osipovichi na kutoka kusini - hadi Osipovichi."

Uamuzi huu ulisababisha swali la Stalin: "Kwa nini unatawanya vikosi vya mbele?" Je, si bora kuwaunganisha katika ngumi moja yenye nguvu na kuwalinda adui kwa ngumi hii? Unahitaji kuvunja ulinzi katika sehemu moja. - Ikiwa tutavunja ulinzi katika maeneo mawili, Comrade Stalin, tutapata faida kubwa. - Zipi? - Kwanza, kwa kugonga katika sekta mbili, mara moja tunaleta nguvu kubwa katika hatua, na kisha tunamnyima adui fursa ya kuendesha akiba, ambayo tayari anayo chache. Na hatimaye, tukifanikiwa katika eneo hata moja, itamweka adui katika wakati mgumu. Mafanikio yatahakikishwa kwa askari walio mbele. "Inaonekana kwangu," Stalin alisisitiza, "pigo linapaswa kutolewa mara moja, na kutoka kwa daraja la Dnieper, katika sekta ya Jeshi la 3." Kwa hiyo, nenda na ufikirie kwa saa mbili, na kisha ripoti mawazo yako kwa Makao Makuu.

Rokossovsky alipelekwa kwenye chumba kidogo karibu na ofisi. Saa hizi mbili zilionekana kama umilele kwa Konstantin Konstantinovich. Alikagua tena na tena hesabu zote zilizoandaliwa na makao makuu ya mbele. Hakukuwa na shaka - pigo mbili zinahitajika kupigwa. Kuingia katika ofisi ya Stalin, Konstantin Konstantinovich alibaki mtulivu, kama kawaida.

Umefikiria juu ya suluhisho, Comrade Rokossovsky? - Hiyo ni kweli, Comrade Stalin. - Kwa hivyo, tutashughulikia pigo moja au pigo mbili? - Joseph Vissarionovich alicheka. Ofisi ilikuwa kimya.

"Ninaamini, Comrade Stalin, kwamba ni vyema zaidi kutoa pigo mbili." - Kwa hivyo haujabadilisha mawazo yako? - Ndiyo, ninasisitiza kutekeleza uamuzi wangu. - Kwa nini haujaridhika na shambulio kutoka kwa daraja zaidi ya Dnieper? Unapoteza nguvu zako! - Mtawanyiko wa nguvu utatokea, Comrade Stalin, nakubaliana na hili. Lakini hii lazima ifanyike, kwa kuzingatia eneo la Belarusi, mabwawa na misitu, pamoja na eneo la askari wa adui. Kuhusu madaraja ya Jeshi la 3 zaidi ya Dnieper, uwezo wa kufanya kazi wa mwelekeo huu ni mdogo, eneo la hapo ni ngumu sana na kundi la adui lenye nguvu linakuja kutoka kaskazini, ambalo haliwezi kupuuzwa. "Nenda, fikiria tena," Stalin aliamuru. - Inaonekana kwangu kuwa unakuwa mkaidi bure.

Kwa mara nyingine tena Rokossovsky yuko peke yake, tena anafikiria faida na hasara zote moja baada ya nyingine na tena anakuwa na nguvu zaidi kwa maoni yake: uamuzi wake ni sahihi na IRREVOCABLE. Alipokaribishwa arudi ofisini, alijaribu kutoa hoja yake kwa migomo miwili kwa usadikisho iwezekanavyo. Rokossovsky alimaliza kuzungumza na kulikuwa na pause. Stalin aliwasha bomba lake kimya kwenye meza, kisha akasimama na kumkaribia Konstantin Konstantinovich: "Uvumilivu wa kamanda wa mbele unathibitisha kwamba shirika la kukera lilifikiriwa kwa uangalifu." Na hii ni dhamana ya mafanikio. Uamuzi wako umethibitishwa, Comrade Rokossovsky.