2016-12-09 2 views
0

У меня есть страница, в которой используется для добавления комнат для администратора, администратор будет выбирать количество комнат, которые он хочет добавить, а затем перейти к идентификатору номера комнаты, проблема заключается в том, что моя кнопка не отключается после заданное количество количества. Если администратор хочет добавить 5 комнат, тогда кнопка может быть нажата только 5 раз для добавления комнаты, затем после 5-кратного нажатия кнопки ее следует отключить. Вот мой пример кода.Предельные кнопки кликов на основе ввода пользователя

int count = 0; // <-- Global Variable 

protected void addBtn_Click(object sender, EventArgs e) 
    { 
     int qty = Convert.ToInt32(qtyDDL.SelectedValue); // <--number of rooms admin wants to add 
     count++; 
     roomtypeDDL.Enabled = false; 
     qtyDDL.Enabled = false; 
     if(count < qty) 
     { 
      string roomid = roomidBox.Text; 
      string rtype = roomtypeDDL.SelectedItem.ToString(); 
     } 

     else 
     { 
      roomidBox.Enabled = false; 
      roomtypeDDL.Enabled = true; 
      addBtn.Enabled = false; 
      addBtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#2C2A2A"); 
     } 
    } 
+1

Я хотел бы предложить, чтобы отображать счетчик и на Qty странице. Таким образом, вы можете видеть, какая из них дает вам проблему. –

ответ

0
protected void qtyDDL_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     try 
     { 
      if (qtyDDL.SelectedIndex == 0) 
      { 
       //My Code 
      } 
      else 
      { 
       Session["Count"] = 0; // <-- sets count to 0 every click on quantity 
      } 
     } 
     catch(Exception ex) 
     { 
      Label1.Text = ex.Message; 
     } 

    } 

protected void addBtn_Click(object sender, EventArgs e) 
    { 
     count = Convert.ToInt32(Session["Count"]); // <-- set variable 
     roomtypeDDL.Enabled = false; 
     qtyDDL.Enabled = false; 
     string rtype, roomid; 

     if(count < Convert.ToInt32(Session["qty"])) 
     { 
      string roomid = roomidBox.Text; 
      string rtype = roomtypeDDL.SelectedItem.ToString(); 
     } 

     count++; 

     if (count == Convert.ToInt32(Session["qty"])) // <--Disable Add Button 
     { 
      roomidBox.Enabled = false; 
      roomtypeDDL.Enabled = true; 
      roomtypeDDL.SelectedIndex = 0; 
      qtyDDL.SelectedIndex = 0; 
      addBtn.Enabled = false; 
      addBtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#2C2A2A"); 
     } 
     Session["Count"] = count; 
    } 
0

вы должны использовать сессии, потому что в asp.net общественности вар возвращается к исходному значению каждому запросу

protected void addBtn_Click(object sender, EventArgs e) 
    { 
     if (Session["Count"]==null) 
     { 
      Session["Count"] = 0; 
     } 
     count = int.Parse(Session["Count"]); 
     int qty = Convert.ToInt32(qtyDDL.SelectedValue); // <--number of rooms admin wants to add 
     count++; 
     roomtypeDDL.Enabled = false; 
     qtyDDL.Enabled = false; 
     if (count < qty) 
     { 
      string roomid = roomidBox.Text; 
      string rtype = roomtypeDDL.SelectedItem.ToString(); 
     } 

     else 
     { 
      roomidBox.Enabled = false; 
      roomtypeDDL.Enabled = true; 
      addBtn.Enabled = false; 
      addBtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#2C2A2A"); 
     } 
     Session["Count"] = count; 
    } 
+1

Я получил ответ с вашим кодом, но я думаю, что способ, которым вы устанавливаете свой «Session [» count »] = 0, немного ошибочен, потому что он будет устанавливать 0 каждый щелчок на addBtn, поэтому if оператор будет продолжать работать. Но в любом случае благодаря вашему коду это очень помогло мне – Newbie10

Смежные вопросы