2010-12-16 7 views
1

私は少し奇妙な問題があり、誰かが助けてくれるのだろうかと思っています。AsyncPostBackTriggerタイマーが鳴るまで、updatepanelのリピーターをクリックしてもトリガーされませんでしたか?

私はAsyncPostBackTriggerとして設定されたタイマーを持つ更新パネルを持っています。 このアップデートパネルにはリピーターがあり、リピーターにはクリックイベントがあるボタンがいくつかあります。

が表示されない場合は、と表示され、タイマーがタイムアウトするまで発生します。 私はデバッグしようとしましたが、これは起こっているようですが、実際にはボタンをクリックすると時間がかかります。

これはなぜ、私はそれについて何ができるのか誰にも分かりますか?

私のコードは次のとおりです。

更新パネル

<asp:UpdatePanel ID="CheckListUpdatePanel" runat="server"> 
    <ContentTemplate> 

    <div><asp:Label ID="CannotBeLoadedLabel" runat="server" Visible="false"></asp:Label></div> 
     <table> 
      <asp:Repeater ID="ChecklistRepeater" runat="server"> 

       <ItemTemplate> 
        <tr> 

         <td> 
          <%# Eval("Description")%> 
         </td> 

         <td> 
          <%# Eval("Priority")%> 
         </td> 
         <td> 

         <td> 
          <asp:Button ID="SetAsCompleteButton" CommandArgument='<%# Eval("EventChecklistId")%>' 
           runat="server" OnClick="SetAsCompleteButton_Click" Text="Close" /> 
         </td> 
        </tr> 
       </ItemTemplate> 
      </asp:Repeater> 
     </table> 
</ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
    </Triggers> 
</asp:UpdatePanel> 

の後ろに私のコードの一部:

Protected Sub SetAsCompleteButton_Click(ByVal sender As Object, ByVal e As EventArgs) 
     timer1.Enabled = False 

~~do complete code  

     timer1.Enabled = True 
    End Sub 

Protected Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles timer1.Tick 
     timer1.Enabled = False 
     LoadEventChecklist() 
     timer1.Enabled = True 
    End Sub 

おかげ

Bexの

答えて

0
<%# Eval("EventChecklistId")%> 

これが原因である可能性があります。内部の価値は何ですか?評価するには完全なポストバックが必要になる可能性があります。

+0

を削除すること自由に感じ..私は質問を閉じるための答えとしてこれをマーキングしています ...将来のために知っている、問題はなかったですリピータへのデータソース。完了するために設定している項目がわかるようにポストバックするときに、この値が必要です。そこには方法がありますか? – Bex

+0

既に存在するClientIDを渡せません。 <%= DataSourceControl.ClientID%> –

+0

どういう意味ですか?データソース全体をコードに渡しますか?私はこれもコードの背後にあります。データソースコントロールを使用していないのです。 – Bex

0

あなたが

protected void ChecklistRepeater_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    e.CommandArgument // This will give the argument specified in the button 
     //Your Code 
} 

のように、何かをボタンのクリックをキャプチャするリピータのitemCommandイベントを使用する必要がありますし、それに応じて処理するために、このメソッド内e.CommandArgumentなどのイベント引数を取得することができます。

+0

ありがとう!まるでそれがタイマーティックを待っているかのように表示されていた何か。 – Bex

0

ボタンがタイマーをクリックするまで発射されていないかのようにボタンが表示されているようです。他の回答の だから、どれも有用ではあるがこれはからバインドID値である

関連する問題