-1
protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
                divStatus.Visible = true;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "somekey", "function autoHide(){ setTimeout(function() {document.getlementById('" + divStatus.ClientID + "').style.display='none';},5000);};", true); 
        }

  <form id="form1" runat="server">
    <div>
    <div class="success" id="divStatus" runat="server" visible="false" >sssssssssssssssss</div>

    </div>
    </form>

数秒後に自動的にフェードアウトするには、正確に何を追加する必要がありますか?現在、divを表示していますが、ユーザーはdivを閉じるために明示的にクリックする必要があり、asp.netを使用してdivを単独で閉じる方法はありますか?

はい、タイマーを指定するとフェードインとフェードアウトで機能することはわかっていますが、asp.netコードビハインドでは機能しません。

// html:

 <div class="success" id="divStatus" runat="server" visible="false" ></div>

//コードビハインド:

protected void lnkbtn_add_Click(object sender, EventArgs e)
{
       ........//more code for deleting
       if (deleted)
       {
           divStatus.visible = true;
       }
}

}

4

1 に答える 1

2

はい、タイマーを指定するとフェードインとフェードアウトで機能することはわかっていますが、asp.netコードビハインドでは機能しません。

違いはありません。ASP.NETコントロールは、通常のhtmlコントロールとしてレンダリングされます。私の勘は、レンダリングされた適切なクライアントIDを使用していないということです。2つの選択肢があります。

  • マークアップにClientIDMode="static"を次のように追加します。

    <div clientidmode="static" class="success" id="divStatus" runat="server" visible="false" ></div>
    

次に、javascript関数を追加して、divを自動的に非表示にします。

function autoHide()
{  //hide after 5 seconds
   setTimeout(function(){document.getlementById('divStatus').style.display='none';},5000);
}
  • 単に使用<%=divStatus.ClientID%>して、最終的にページにレンダリングされるクライアントIDを次のように取得します。

    function autoHide() {  //hide after 5 seconds   
      setTimeout(function() {document.getlementById('<%=divStatus.ClientID%>').style.display='none';},5000);
    }
    

コードビハインドから、次のように呼び出すことができます。

 ........//more code for deleting
Page.ClientScript.RegisterStartupScript(this.GetType(),"somekey","autoHide();",false);

アップデート

コードビハインドで関数を定義したい場合は、次のようにします(前の例ではなく、この場合、最後のパラメーターがこの場合でautoHideあることに注意してください)。truefalse

 ........//more code for deleting
string script = @"document.getElementById('" + divStatus.ClientID + "').innerHTML='You are done!' ;setTimeout(function(){document.getElementById('" + divStatus.ClientID + "').style.display='none';},5000);";
Page.ClientScript.RegisterStartupScript(this.GetType(), "somekey", script, true);
于 2012-05-14T21:14:17.307 に答える