Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# Asp.net复选框在其中呈现带有AutoPostBack=true的span_C#_Asp.net_Checkbox - Fatal编程技术网

C# Asp.net复选框在其中呈现带有AutoPostBack=true的span

C# Asp.net复选框在其中呈现带有AutoPostBack=true的span,c#,asp.net,checkbox,C#,Asp.net,Checkbox,这使我束手无策。我有一个GridView,其中有一个带有复选框的列。该复选框设置为call CheckedChanged,且AutoPostBack为true <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="cbNotifier" runat="server" OnCheckedChanged="cbNotifier_CheckedChanged" AutoPostBack="true" /> <

这使我束手无策。我有一个GridView,其中有一个带有复选框的列。该复选框设置为call CheckedChanged,且AutoPostBack为true

<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbNotifier" runat="server" OnCheckedChanged="cbNotifier_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
我在GridView的第一列中使用了类似的代码,它工作得非常好。我在另一列中使用上述代码。它不起作用。它不会呈现复选框以进行回发,而是围绕复选框呈现一个范围,如下所示:

<span AutoPostBack="true"><input id="cbNotifier" type="Checkbox"></span>
因此,当然,复选框不会回发

如果我在同一列中添加另一个相同的复选框,如下所示

<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbNotifier" runat="server" OnCheckedChanged="cbNotifier_CheckedChanged" AutoPostBack="true" />
<asp:CheckBox ID="cbNotifier1" runat="server" OnCheckedChanged="cbNotifier_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>

。。。第二个复选框完美地postsback,第一个复选框得到了它周围的span标记。到底发生了什么事?

奇怪。如果将cbNotifier1置于cbNotifier之上而不是之下,会发生什么情况?哪一个获得了跨度?如果我这样做,CBR1仍然可以正常工作。cbNotifier现在是单元格中的第二个控件,它仍在获取标记中写入的带有AutoPostBack=true的span标记。这让我发疯——如果我删除cbNotifier,cbNotifier1就可以正常工作。我有8个GridView,有3列,在一个选项卡式容器中有所有复选框,其中一些复选框起作用,而另一些则不起作用,因此它是特定于该名称的。我确信cbNotifier并不特别,所以一定有其他代码影响它的呈现方式。否-我已删除cbNotifier并将cbNotifier1的ID更改为cbNotifier。它起作用了。其他不起作用的复选框称为cbFinalList。这些复选框都不会在代码隐藏中的任何位置或页面上的其他位置引用。我正打算放弃,在屏幕上显示“是”或“否”的链接按钮。好吧,我需要承认,以防有人浪费时间看这个。那是个该死的打字错误。我在其中一个复选框中键入了AutoPostPack=true,然后在试图解决它时将其复制到了所有地方。因为AutoPostPack=true没有意义-.net决定呈现一个包含AutoPostPack=true的span标记。欲速则不达。我必须原谅自己,因为我似乎总是在压力下工作。我要吸取的教训是:如果某件事以前成功过一千次,但后来却不成功,那就是我做错了什么。写了20年的代码-应该已经学会了。