2017-07-06 9 views
0

私はかなり新しいVB.NETです。私はハードな部分をして、簡単なもので苦労しているように感じる!私はここに来る前にそれを見つけたが、まだ苦労している。クリックイベントの無効化ボタンは5回クリックした後に表示されます

基本的には、利用可能なすべての治療とボタンの横にドロップダウンリストがあります(治療の追加)。リストから治療を選択するたびに、ボタンをクリックしてそれを追加し、それをgridviewにバインドします。唯一の問題は、最大5つの治療を追加してボタンを無効にしたいということです。どのように質問ボタンがクリックされた回数を見つけることができますか?If文を置くことができると思いますが、ボタンがクリックされた回数の値を見つける方法はわかりません。

Dim availableTreatment As ListItem = New ListItem 
    Dim count As Integer = 0 
    For count = 0 To 4 
     If count <= 4 And btnavailableTreatment (button clicked value is what should go here) Then 
      availableTreatment = DDTreatmentList.SelectedItem 
      c.name = availableTreatment.Value 
      saveTreatment(c) 
      gvavailableTreatment.DataSource = getTreatment(c.name) 
      gvavailableTreatment.DataBind() 

     Else 
      btnavailableTreatment.Enabled = False 
     End If 
     count = count + 1 
    Next 
+0

そのコードが 'Button_Click'イベントの範囲内にある場合、ボタンはいつでも0にリセットされます。 Button_Clickの外側にカウンタを移動してみてください。 –

+0

@DaveB外部に移動するだけでは解決しません。ページクラスのインスタンスは失われ、各ポストバックとともに再作成されます。彼は、ViewStateや隠しフィールドなどのフォームにデータを格納する必要があります。 – mason

+0

mason、She *。私はそれを隠されたフィールドに保存し、それがどうなるかを見てみよう!乾杯! – Sam

答えて

0

あなたのページにこのマークアップを追加します。

<asp:HiddenField id="NumberOfTimesClickedHiddenField" 
       value="0" 
       runat="server"/> 

は、ボタンのクリックハンドラに

'get previous value 
Dim numberOfTimesClicked = Integer.Parse(NumberOfTimesClickedHiddenField.Value) 

'increment value 
numberOfTimesClicked += 1 

'store new value 
NumberOfTimesClickedHiddenField.Value = numberOfTimesClicked.ToString() 

If numberOfTimesClicked >= 5 Then 
    btnavailableTreatment.Enabled = False 
End If 

これを追加今すぐ値がページ上のフォームデータで保持されます。

私はもともとC#でこれを書いていましたが、私はVB.NETプログラマーではありませんでしたので、翻訳者を使って変換しました。構文エラーがありますが、一般的なフローが正しいはずです。

+0

私はあなたがうまくいくと思いますが、私は隠されたフィールドの値を増やすことに悩まされています。それは間違いを投げている! – Sam

+0

@Samエラーとは何ですか? – mason

+0

増分値の場合:Doubleを隠しフィールドに変換できないので、代わりにnumberOfTimesClicked.value + = 1代わりに新しい値を保存する// NumberOfTimesClickedHiddenField.Value = numberOfTimesClicked.ToString()..更新していません私がクリックするたびに隠されたフィールドは0から始まります! – Sam

関連する問題