2014-11-06 2 views
-4

Я поставил выпадающий позволяют установить ложь в одной кнопки мыши и я позволит = «истинный» набор не работает в загрузке страницыDROPDOWNLIST «Включить правда» не работает Asp.net

вот мой ASPX

<asp:DropDownList ID="ddlJournal" runat="server" OnSelectedIndexChanged="ddlJournal_SelectionChanged" AutoPostBack="true" CssClass="drop" /> 

Вот мой щелчок событие:

protected void btnTemplate_click(object sender, EventArgs e) 
    { 
     check.Value = "1"; 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "Load_functions()", true); 


     //txtAddJournal.Attributes.Add("Style", "display:block"); 
     //btnUpload.Attributes.Add("Style", "display:block"); 
     //if (fileuploader.HasFile) 
     //{ 
     try 
     { 
      string Filename = Path.GetFileName(fileuploader.FileName); 
      //fileuploader.SaveAs(Server.MapPath("~/") + Filename); 
      // fileuploader.SaveAs(Server.MapPath("D:\\Req Sep16\\") + Filename); 
      OleDbConnection myconnectionini = default(OleDbConnection); 
      OleDbDataAdapter mycommandini = default(OleDbDataAdapter); 
      //if (fileuploader.PostedFile.FileName.EndsWith(".xls") == false & fileuploader.PostedFile.FileName.EndsWith(".xlsx") == false) 
      //{ 
      // // lbl_Error.Text = "Upload only excel format"; 
      // Response.Write(@"<script language='javascript'>alert('Upload only excel format');</script>"); 
      // return; 

      //} 
      //else 
      //{ 
      gvDetails.DataSource = null; 

      string pathToSave = HttpContext.Current.Server.MapPath("~/UploadFiles/") + "Copy of Database_HBM"; 
      //fileuploader.PostedFile.SaveAs(pathToSave); 
      //strFilePath = "D:\\Files\\" + fileuploader.FileName; 

      string constrini = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + pathToSave + ";Extended Properties=Excel 8.0;"; 
      DataSet ds = new DataSet(); 
      // DataTable dt = new DataTable();   
      myconnectionini = new OleDbConnection(constrini); 
      mycommandini = new OleDbDataAdapter("select * from [Sheet1$]", myconnectionini); 
      ds = new DataSet(); 
      mycommandini.Fill(ds); 

      gvDetails.DataSource = ds.Tables[0]; 
      gvDetails.DataBind(); 

      ddlJournal.SelectedIndex = -1; 
      ddlJournal.Enabled = false; 

      //ddlJournal.Attributes.Add("disabled", "disabled"); 


      //} 

     } 
     catch (Exception ex) 
     { 
      string msg = ex.Message; 
     } 

     //} 
    } 

И мое событие загрузки страницы является

protected void Page_Load(object sender, EventArgs e) 
    { 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "Grid", "headerLock();", true); 

     // ScriptManager.RegisterStartupScript(Page, this.GetType(), "Key", "<script>headerLock();</script>", true); 
     if (!IsPostBack) 
     { 
      Bindddl(); 
      BindGrid(null); 
      ddlJournal.Enabled = true; 

     } 
     else 
     {    
      ddlJournal.Enabled = true; 

     } 

    } 

кнопка:

<asp:Button ID="btnUpload" runat="server" Text="Template 1" OnClientClick="return Validate();" 
            OnClick="btnTemplate_click" CssClass="btn" /> 

, но до сих пор мой выпадающий список отключен.

предложить мне получить решение заранее спасибо

+0

Вы хотите, чтобы ke выпадающий, чтобы скрыть или что-то еще сказать ясно? –

+0

Я хочу установить Enable false при нажатии кнопки click event, в противном случае она всегда будет активирована true – Bala

+0

@Bala Мне сложно понять, что вы хотите на 100%, хотите ли вы, чтобы весь ddl был включен false, поэтому вы не можете щелкнуть по нему , или это ListItems, которые вы хотите включить false, чтобы вы могли видеть элементы, но не нажимали на них? –

ответ

0

Вы можете установить выпадающий список Enabled ложь от контроля только как этот

<asp:DropDownList ID="ddlJournal" runat="server" OnSelectedIndexChanged="ddlJournal_SelectionChanged" AutoPostBack="true" CssClass="drop" Enabled="false"/> 

И код остальные должны работать нормально.

Пожалуйста, отметьте это помогает

+0

Нет, я не хочу устанавливать ложное значение по умолчанию. только включить false только в этой кнопке, – Bala

+0

, чтобы вы могли написать код для события нажатия кнопки, вы должны проверить условие для этого события в условии if else. Где ваш код, связанный с HTML, для кнопки. Пожалуйста, вставьте это также – BNN

+0

Проверьте вопрос о обновлениях – Bala

0

Поймите, что ваше if-else состояния в Page_Load() метод является основным виновником. Вы всегда устанавливаете ddlJournal.Enabled = true, несмотря ни на что. Похоже, вы неправильно поняли концепцию IsPostBack. ddlJournal должен быть отключен, если IsPostBack является истинным, потому что это то, что вы хотите. В противном случае предполагается, что он включен.

Это очень краткое объяснение о том, что IsPostBack является:

Postback в событии, которое срабатывает, когда действие выполняется с помощью Contol на странице asp.net. например. когда вы нажимаете на кнопку, данные на странице отправляются обратно на сервер для обработки. Обычно IstPostback используется для события _load страницы, чтобы определить, создается ли страница из-за обратной передачи, запрошенной элементом управления на странице, или если страница загружается в первый раз.

[комментарий от http://forums.asp.net/t/1115866.aspx?What+is+IsPostBack]

Так на основе этого, вы должны изменить свой код, как в следующем:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Grid", "headerLock();", true); 

    if (!IsPostBack) 
    { 
     //When IsPostBack is false, ddlJournal should be enabled 
     Bindddl(); 
     BindGrid(null); 
     ddlJournal.Enabled = true; 

    } 
    else 
    { 
     //Else, IsPostBack is true, so, ddlJournal should be disabled    
     ddlJournal.Enabled = false; 

    } 

} 

Кроме того, вам не нужно это в вашей btnTemplate_click() метод, так как вы делаете это при загрузке страницы:

ddlJournal.Enabled = false; 
Смежные вопросы