2014-11-06 22 views
-4

我已經設置下拉能夠在點擊一個按鈕設置爲false,我將設置啓用=「true」是不是在頁面加載工作下拉列表「實現真正的」不工作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

您想要嗎?可以隱藏下拉或其他的東西清楚地說明嗎? – 2014-11-06 11:02:19

+0

我想設置啓用虛假按鈕點擊事件觸發時,否則它總是啓用真正 – Bala 2014-11-06 11:05:31

+0

@Bala我覺得很難理解100%你想要什麼,你想讓整個DDL啓用虛假,所以你不能點擊它,或者它是你希望啓用的ListItems爲false,所以你可以看到項目但不點擊它們? – 2014-11-06 11:16:56

回答

0

您可以設置啓用其控制假下拉列表中只有這樣

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

而其餘的代碼應該很好地工作。

請註明它有助於

+0

不,我不想設置錯誤的默認值。只在該按鈕中啓用false,只能點擊, – Bala 2014-11-06 11:03:12

+0

因此您可以編寫按鈕單擊事件的代碼,您必須在if else條件中檢查該事件的條件。按鈕的HTML相關代碼在哪裏?請粘貼也 – BNN 2014-11-06 11:05:49

+0

看看更新的問題 – Bala 2014-11-06 11:09:24

0

瞭解您的if-else條件的Page_Load()方法是主要的罪魁禍首。無論如何,你一直在設置ddlJournal.Enabled = true。似乎你沒有正確理解IsPostBack的概念。當IsPostBack爲真時,ddlJournal應該被禁用,因爲這就是你想要的。否則,它應該被啓用。

這是什麼IsPostBack是一個非常簡明的解釋:

回發時,在由控逆變一個asp.net頁面上進行操作時觸發的事件。例如。當您單擊某個按鈕時,頁面上的數據將被髮回到服務器進行處理.IsPostback通常用於頁面_load事件,以檢測頁面是由於頁面上的控件請求的回發而生成的,還是頁面第一次加載。

因此,基於該[A從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;