0

OK、ここに問題があります。私のコードには、mainClientList、mainTable1、mainTable2、mainTable3、mainTable4 の 5 つの主要な div があります。mainClientList にはクライアントのリストが含まれており、クライアントごとに、残りの div をクリックするとその情報が表示されます。また、チェックボックスがあり、チェックすると各クライアントの情報が1つずつ表示され、このためにsetIntervalを使用しました。設定された間隔で、ポストバックするクリックイベントをトリガーしました。

問題は、これらの 5 つの div に更新パネルを配置すると、ユーザーがクライアントをクリックすると正常に動作しますが、チェックボックスをオンにすると複数のポストバックが発生することです。なぜこうなった ??

助けてください...

<body>
<form id="form1" runat="server">
<div>
    <asp:CheckBox ID="chboxRefresh" Checked="false" OnClick="startStopTimer();" runat="server" />
    <div id="mainClientList">
        <input type="hidden" name="reference" id="chboxRefresh_hidden" runat="server" value="" />
        <asp:Button ID="btn" runat="server" style="display:none;" OnClick="Btn_Click" />                    
       <table class="gridtable">
            <tr>
                <td id="row1_1"><asp:CheckBox ID="chk_cl1" runat="server" /></td>
                <td id="row1_2">
                    <div><asp:LinkButton ID="cl1" runat="server" Text="a" OnClick="cl_Click" /></div>
                    <div><br /><asp:Label id="lastUpdatecl1" runat="server" CssClass="lastupdatedclients"></asp:Label></div>
                </td>
            </tr>
            <tr>
                <td id="row2_1"><asp:CheckBox ID="chk_cl2" runat="server"/></td>
                <td id="row2_2">
                    <div><asp:LinkButton ID="cl2" runat="server" Text="b" onclick="cl_Click" OnClientClick="$('#loader').show();"/></div>
                    <div><br/><asp:Label id="lastUpdatecl2" runat="server" CssClass="lastupdatedclients"></asp:Label></div>
                </td>
            </tr>
            <tr>
                <td id="row3_1"><asp:CheckBox ID="chk_cl3" runat="server"/></td>
                <td id="row3_2">
                    <div><asp:LinkButton ID="cl3" runat="server" Text="c" onclick="cl_Click" OnClientClick="$('#loader').show();"/></div>
                    <div><br/><asp:Label id="lastUpdatecl3" runat="server" CssClass="lastupdatedclients"></asp:Label></div>
                </td>
            </tr>                     
        </table>
    </div>

    <div id="mainTable1">
        some table
    </div>

    <div id="mainTable2">
        some table
    </div>

    <div id="mainTable3">
        some table
    </div>

    <div id="mainTable4">
        some table
    </div>
</div>
</form>

<script type="text/javascript" language="javascript">
    function startStopTimer() 
    {         
        setInterval(pageReload, 10000);           
    }
    function pageReload() 
    {
        clearInterval(intervalIDSelect);
        document.getElementById('<%=btn.ClientID %>').click();
    }

</script>

チェックボックスの更新がチェックされていると、postbakするstartStopTimerがトリガーされます。

4

1 に答える 1

0

チェックボックスの自動ポストバック プロパティを true に設定してください。

コードビハインド

   public void checkbox_CheckedChanged(object sender, EventArgs e)
    {
     if (!Page.IsPostBack)
        {
          //write here your codes
         }

    }

お役に立てれば幸いです

于 2013-04-28T14:51:26.453 に答える