C# Can';无法在datagrid ASP.NET中获取复选框值

C# Can';无法在datagrid ASP.NET中获取复选框值,c#,asp.net,webforms,C#,Asp.net,Webforms,我有一个DataGrid,它有用于选择特定用户的复选框。当单击Ok按钮时,我应该获取复选框的状态,如果选中,则获取行的ID。我进入复选框,但值总是选中=false,当然,即使我选中复选框。代码如下: <Columns> <asp:TemplateColumn HeaderText="Odabir"> <ItemTemplate> <asp:C

我有一个DataGrid,它有用于选择特定用户的复选框。当单击Ok按钮时,我应该获取复选框的状态,如果选中,则获取行的ID。我进入复选框,但值总是选中=false,当然,即使我选中复选框。代码如下:

        <Columns>

            <asp:TemplateColumn HeaderText="Odabir">
                <ItemTemplate>
                    <asp:CheckBox ID="chkVjezba" runat="server" Enabled="true"/>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:BoundColumn HeaderText="Vježba" DataField="Naziv"></asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Broj serija">
                <ItemTemplate>
                    <asp:TextBox ID="brojSerija" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 6">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena6" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 7">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena7" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 8">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena8" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 9">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena9" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 10">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena10" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>

    </asp:DataGrid>
.aspx

        <Columns>

            <asp:TemplateColumn HeaderText="Odabir">
                <ItemTemplate>
                    <asp:CheckBox ID="chkVjezba" runat="server" Enabled="true"/>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:BoundColumn HeaderText="Vježba" DataField="Naziv"></asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Broj serija">
                <ItemTemplate>
                    <asp:TextBox ID="brojSerija" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 6">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena6" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 7">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena7" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 8">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena8" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 9">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena9" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 10">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena10" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>

    </asp:DataGrid>
谢谢。

像这样试试

        <Columns>

            <asp:TemplateColumn HeaderText="Odabir">
                <ItemTemplate>
                    <asp:CheckBox ID="chkVjezba" runat="server" Enabled="true"/>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:BoundColumn HeaderText="Vježba" DataField="Naziv"></asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Broj serija">
                <ItemTemplate>
                    <asp:TextBox ID="brojSerija" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 6">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena6" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 7">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena7" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 8">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena8" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 9">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena9" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 10">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena10" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>

    </asp:DataGrid>
foreach (DataGridItem row in vjezbeGrid.Items)
        {
            if (row.ItemType == ListItemType.Item)
            {
                CheckBox chkVjezba = (CheckBox)row.FindControl("chkVjezba");

                if (chkVjezba.Checked)
                {
                    //something
                }
            }

        }

您可以在每次回发时进行数据绑定。确保只有在以下情况下才进行数据绑定!Page.IsPostBack.

就是这样!伟大的我刚刚添加了页面加载事件if(!IsPostBack)谢谢,将if(!IsPostBack)添加到页面加载事件解决了问题。@rukfash别忘了标记为答案。谁的答案对您更有帮助
        <Columns>

            <asp:TemplateColumn HeaderText="Odabir">
                <ItemTemplate>
                    <asp:CheckBox ID="chkVjezba" runat="server" Enabled="true"/>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:BoundColumn HeaderText="Vježba" DataField="Naziv"></asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Broj serija">
                <ItemTemplate>
                    <asp:TextBox ID="brojSerija" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 6">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena6" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 7">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena7" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 8">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena8" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 9">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena9" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>

            <asp:TemplateColumn HeaderText="Ocjena 10">
                <ItemTemplate>
                    <asp:TextBox ID="ocjena10" runat="server" Width="20px"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>

    </asp:DataGrid>