सी # का उपयोग कर ड्रॉपडाउन में पिछले महीने का नाम कैसे लोड करें

private void GenerateMonth(bool SetCurruntMonth)
{
   drpMonth.Items.Clear();
   int year = drpYear.SelectedIndex != 0 ? ((drpYear.SelectedValue != "") ? Convert.ToInt32(drpYear.SelectedValue) : DateTime.Now.Year)
                       : DateTime.Now.Year;

    int months = (DateTime.Now.Year == year) ? DateTime.Now.Month : 12;
    for (int i = 1; i <= months; i++)
    {
        drpMonth.Items.Add(new ListItem(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i), i.ToString()));
        }
        if (SetCurruntMonth == true && DateTime.Now.Year == year)
        {
            drpMonth.Items.FindByValue(DateTime.Now.AddMonths(-1).ToString()).Selected = true;
        }
        else
        {
            drpMonth.SelectedIndex = 0;
        }
    }
0

2 उत्तर

private void GenerateMonth(bool SetCurruntMonth, DateTime currentDate)
     {
        drpYear.ClearSelection();
        drpMonth.Items.Clear();
        int year = drpYear.SelectedIndex != 0 ? ((drpYear.SelectedValue != "") ? Convert.ToInt32(drpYear.SelectedValue) : currentDate.Year) : currentDate.Year;

        int months = (currentDate.Year == year) ? currentDate.Month : 12;
        int i;
        for ( i = 1; i <= 12; i++)
        {
            drpMonth.Items.Add(new ListItem(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i), i.ToString()));
        }
       //int month;
        if (SetCurruntMonth == true && currentDate.Year == year)
        {
            if (currentDate.Month >= 1)
            {
                drpMonth.Items.FindByValue(currentDate.AddMonths(-1).Month.ToString()).Selected = true;
              //month = Convert((currentDate.AddMonths(-1).Month.ToString()).Selected = true);
            }
            else
                drpMonth.Items.FindByValue("1").Selected = true;
             //drpYear.Items.FindByValue((DateTime.Now.Year-1).ToString()).Selected = true;
            if (currentDate.Month == 1)
            {
               DateTime year1 = (currentDate.AddYears(-1));
               int yy = Convert.ToInt16(year1.Year);
enter code here
                drpYear.Items.Add(new ListItem(Convert.ToString(year)));
                drpYear.SelectedValue= Convert.ToString(yy);
            }
        }
        else
        {
            drpMonth.SelectedIndex = 0;
        }
    }
0
जोड़ा
मुझे मिल गया, उम्मीद है कि यह सहायक होगा
जोड़ा लेखक Arun Babu, स्रोत

आपकी विधि इस तरह दिखनी चाहिए:

  private void GenerateMonth(bool SetCurruntMonth, DateTime currentDate)
    {
        drpMonth.Items.Clear();
        int year = drpYear.SelectedIndex != 0 ? ((drpYear.SelectedValue != "") ? Convert.ToInt32(drpYear.SelectedValue) : currentDate.Year)
                            : currentDate.Year;

        //int months = (currentDate.Year == year) ? currentDate.Month : 12;
        int months = 12;

        for (int i = 1; i <= months; i++)
        {
            drpMonth.Items.Add(new ListItem(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i), i.ToString()));
        }
        if (SetCurruntMonth == true && currentDate.Year == year)
        {
            if (currentDate.Month > 1)
                drpMonth.Items.FindByValue(currentDate.AddMonths(-1).Month.ToString()).Selected = true;
            else
                drpMonth.Items.FindByValue("1").Selected = true;
        }
        else
        {
            drpMonth.SelectedIndex = 0;
        }
    }

समस्या यह थी कि जब आप ड्रॉपडाउन सूची में इसे चुनने का प्रयास कर रहे थे तो आप माह प्रॉपर्टी की जांच नहीं कर रहे थे। इसके बजाय आप पूर्ण डेटाटाइम मूल्य की जांच कर रहे थे।

Edit: I've fixed your issue but I've also just added an extra date parameter to make it easier to test, you can replace this if you'd like.

Edit 2: Commented out 'Month' logic so that all months appear in the dropdown list.

0
जोड़ा
जब मैं जनवरी के महीने को बदल रहा था तो यह प्राप्त हो रहा था (ऑब्जेक्ट रेफरेंस किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।) त्रुटि क्योंकि जनवरी 1-1 = 0 लेता है ... इसलिए त्रुटि हो रही है
जोड़ा लेखक Arun Babu, स्रोत
नहीं, मुझे दिसंबर महीने नहीं मिल रहा है, जब मैं डेटाटाइम को जनवरी में बदलता हूं
जोड़ा लेखक Arun Babu, स्रोत
मुझे दिसम्बर को छोड़कर सभी महीने मिल रहे हैं .... यह कोई बेहतर तर्क है ??
जोड़ा लेखक Arun Babu, स्रोत
मुझे यह दिसम्बर महीने मिला, लेकिन अब समस्या साल के अंतराल को बदलने के लिए है ...
जोड़ा लेखक Arun Babu, स्रोत
फिक्स्ड, कभी भी सबसे अच्छा कोड नहीं बल्कि यह काम करता है।
जोड़ा लेखक Damon, स्रोत
वाह, कठिन भीड़। अरुण मुझे लगता है कि आपको अपने तर्क को देखने की जरूरत है, ड्रॉपडाउन सूची केवल वर्तमान तारीख से कम महीनों की संख्या के साथ आबादी में है। यदि यह सूची में नहीं है तो यह संभवतः दिसम्बर का चयन कैसे कर सकता है? मैं आपकी मदद करने की कोशिश कर रहा हूं लेकिन मैं आपके लिए व्यावसायिक तर्क नहीं लिख सकता।
जोड़ा लेखक Damon, स्रोत
दुर्भाग्यवश अरुण मुझे नहीं पता कि आप क्या करने की कोशिश कर रहे हैं, मैंने अपने कोड नमूने को अपने तर्क के साथ बदलकर महीनों के बारे में बताया है। यह दिसम्बर को चुनने की अनुमति देने वाले सभी महीनों को प्रदर्शित करेगा।
जोड़ा लेखक Damon, स्रोत