Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复选框首次更改时未输入_C#_Asp.net_Webforms_Viewstate - Fatal编程技术网

C# 复选框首次更改时未输入

C# 复选框首次更改时未输入,c#,asp.net,webforms,viewstate,C#,Asp.net,Webforms,Viewstate,我们有类似上面的东西。由于这是一个很大的页面,额外的内容被省略了 我在页面加载和DoBar的开始处放置了一个断点。我第一次单击复选框时,点击了加载页面上的断点,但没有点击。第二次单击复选框时,两个断点都被命中 为什么会发生这种情况?我没有动态生成复选框。它的ClientID每次都是相同的(没有动态生成的或ID为的容器)。我已尝试在页面加载中重新订阅该事件,但第一次没有命中,只是在随后两次命中 更新我已尝试完全删除UpdatePanel。不仅整个页面都回发了,我不想这样,而且事件仍然没有输入。什么

我们有类似上面的东西。由于这是一个很大的页面,额外的内容被省略了

我在
页面加载
DoBar
的开始处放置了一个断点。我第一次单击复选框时,点击了加载页面上的断点,但没有点击。第二次单击复选框时,两个断点都被命中

为什么会发生这种情况?我没有动态生成复选框。它的ClientID每次都是相同的(没有动态生成的或ID为的容器)。我已尝试在
页面加载
中重新订阅该事件,但第一次没有命中,只是在随后两次命中


更新我已尝试完全删除UpdatePanel。不仅整个页面都回发了,我不想这样,而且事件仍然没有输入。什么可以阻止/吞下这样的事件呼叫?母版页、框架调用或其他我看不到的东西的内部是否存在一些异常

这是您粘贴的正确源代码吗?我这样问是因为没有名为OnCheckChanged的事件,但是有一个OnCheckedChanged事件。使用您的代码,当复选框的标记如下所示时,它可以正常工作:

<ajaxtoolkit:AccordionPane ID="accordianPaneAroundTheCheckbox" runat="server">
    <Content>
        <asp:UpdatePanel ID="updatePanelAroundTheCheckbox" runat="server" >
            <ContentTemplate>
                <div>
                    <asp:CheckBox ID="chkFoo" AutoPostBack="true"  runat="server" OnCheckedChanged="DoBar"/>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </Content>
</ajaxtoolkit:AccordionPane>

服务器端没有设置该复选框。表单由对PageMethod的ajax调用填充,PageMethod从服务器提取数据包并填充控件。问题是服务器认为它没有被检查,但是javascript检查了它。当我取消选中它时,回发发生了,viewstate仍然认为它以前的状态是未选中的,而当前状态现在是未选中的。因此,CheckedChanged事件不会触发


一千个可怕的死亡发生在这个州。我现在就可以解决这个问题了。谢谢你的尝试/查看。

不,那是个打字错误。我有正确的事件。我假设您正在使用的代码不包括更新面板或Accordian。我在一个不相关的控件上留下了很多其他控件,但这些控件很可能与此行为相关。不,我在其中添加了一个AccordionPane控件和一个UpdatePanel。我回家后会把消息发出去。现在,如果你在updatepanel中添加一个触发器,会有什么不同吗?我把updatepanel一起拿了出来。仍然表现相同。
<asp:CheckBox ID="chkFoo" runat="server" AutoPostBack="true" OnCheckedChanged="DoBar"/>