下拉列表“;启用true”;Asp.net不起作用

本文关键字:Asp net 不起作用 true 启用 下拉列表 | 更新日期: 2023-09-27 18:29:26

我已经在一键点击中将下拉启用设置为false,我将设置enable="true"在页面加载中不起作用

这是我的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" />

但我的下拉列表仍然是禁用的。

建议我找个解决方案提前感谢

下拉列表“;启用true”;Asp.net不起作用

您可以从其控制中将下拉列表Enabled设置为false,就像这个一样

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

其余代码应该可以正常工作。

请标记它有助于

了解Page_Load()方法中的if-else条件是罪魁祸首。不管怎样,您总是在设置ddlJournal.Enabled = true。你似乎没有正确理解IsPostBack的概念。当IsPostBack为true时,应该禁用ddlJournal,因为这正是您想要的。否则,应该启用它。

这是关于IsPostBack是什么的一个非常简洁的解释:

当控件在asp.net页面上执行操作时触发的事件中的Postback。例如,当你点击一个按钮时,页面上的数据会被发布回服务器进行处理。IsPostback通常用于page_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;