页面上有一个button,点击button后往数据库中添加一条记录,如果添加成功,让div1显示,失败则让div2显示。。请给我点思路吧自己做了一个,需要点击button两次div才显示,而且加了两条记录,可能是页面生命周期没搞清楚。。

解决方案 »

  1.   

    首先是该操作必须返回一个int值,成功还是失败
    如果成功
        div1显示
        div2隐藏
    失败
        div2显示
        div1隐藏
      

  2.   


    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        <div id="divSuccess" runat="server" style="visibility:hidden;" enableviewstate="false">
            Success!
        </div>
        <div id="divFailed" runat="server" style="visibility:hidden;" enableviewstate="false">
            Failed!
            </div>
    </form>protected void Button1_Click(object sender, EventArgs e)
    {
            bool success = true;
            //数据库操作        if (success)
                divSuccess.Style["visibility"] = "visible";
            else
                divFailed.Style["visibility"]= "visible";
            
    }
      

  3.   

    你可能在OnClick事件里面将JS注册至button.OnClientClick吧?
    你在这次点击事件时注册的JS只有在下次点击才被执行,这就是问题的原因
      

  4.   

    divSuccess.Style["visibility"]=success ;
    divFailed.Style["visibility"]= !success;
      

  5.   

    css的visibility会占位,改成display:none; display:block;吧。
    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        <div id="divSuccess" runat="server" style="display:none;" enableviewstate="false">
            Success!
        </div>
        <div id="divFailed" runat="server" style="display:none;" enableviewstate="false">
            Failed!
            </div>
    </form>
    至于为什么enableviewstate="false", 可以用下面代码测一下就知道原因了。
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                ViewState["State"] = false;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {        bool success = (bool)ViewState["State"];
            success = success == true ? false : true;
            //数据库操作        if (success)
                divSuccess.Style["display"] = "block";
            else
                divFailed.Style["display"]= "block";        ViewState["State"] = success;
            
        }
      

  6.   

    谢谢。。我没想到div可以做服务器端控件确实行。。
    但是给div加上runat="server"后会出现脚本错误,不知道为什么。
      

  7.   

    if(成功)
    {
      执行添加代码
      显示div1
      隐藏div2
    }
    else
    {
      隐藏div1
      显示div2
    }
      

  8.   

    .aspx
    <div id="divSuccess" runat="server">Success!</div> 
    <div id="divFailed" runat="server">Fail!</div>.cs
    if(成功) 

      执行添加代码   divSuccess.Visible = true; 
      divFailed.Visible = false;

    else 

      divSuccess.Visible = false; 
      divFailed.Visible = true; 
    }