2016-07-06 7 views
0

こんにちは。response.redirectを使用してトラブルが発生しました

私はAsp.net + Vb.Netアプリケーションを持っているし、ここに私の問題を説明するコードの例です:

まず、私は2つのボタン、「有効」とDefault.aspxページを持っていると

を「リダイレクト」
Protected Sub butvalid_Click(sender As Object, e As EventArgs) Handles butvalid.Click 

    If (File.Exists(Server.MapPath("log.txt"))) Then 
     Dim lines() As String = IO.File.ReadAllLines(Server.MapPath("log.txt")) 

     Dim tmp As Integer = Convert.ToInt32(lines(lines.Length - 1)) 
     tmp = tmp + 1 

     File.AppendAllText(Server.MapPath("log.txt"), Environment.NewLine & tmp.ToString) 
    Else 
     File.WriteAllText(Server.MapPath("log.txt"), "1") 
    End If 

End Sub 

Protected Sub Redirect_Click(sender As Object, e As EventArgs) Handles Redirect.Click 
    Response.Redirect("accueil.aspx") 
End Sub 

有効なボタンはtxtファイルに書き込むと、リダイレクトがリダイレクトされる...

ここではaccueil.aspxのPage_Loadのコードです:

Threading.Thread.Sleep(3000) 
Response.Redirect("default.aspx") 

問題は、Default.aspxページのリダイレクトボタンをクリックしたときに、有効なボタンがアクセス可能なままで、ユーザーが有効なボタンをクリックできることです。

リダイレクトをクリックした後に[有効]ボタンを無効にするにはどうすればよいですか?

ありがとうございます。

+1

リダイレクトボタンをクリックした後に他のボタンを無効にするには、これを行うには単純なjavascriptが必要です。 – Esko

答えて

0

これをPage_OnLoadハンドラに配置し、各ポストバックで呼び出してバインドされていることを確認します。これにより、クライアント側のボタンが無効になり、クリック後にページの読み込みが再開され、サーバーへの応答が行われると、ボタンが再度有効になります。

Redirect.Attributes.Add("onclick", "javascript:" 
     + butvalid.ClientID + ".disabled=true;" 
     + Page.ClientScript.GetPostBackEventReference(Redirect, null));  
+0

この作品は私には感謝していますが、なぜ2ポストバックの間にコンポーネントが利用できないのか理解できませんが、リダイレクトを行うとどうなるのでしょうか? – Christophe

+0

私はあなたが何を言っているのかはっきりしていません。 ? –

+0

@Christopheリダイレクトはポストバックと同じではありません。その新しいページではなく、ユーザーがボタンをクリックしたときのページ – StingyJack

関連する問題