Asp.net 触发OnClick事件时GridView不返回数据绑定行

Asp.net 触发OnClick事件时GridView不返回数据绑定行,asp.net,gridview,Asp.net,Gridview,我有一个GridView,它由两个通过存储过程填充的数据库字段和三个用于用户输入的字段(两个复选框控件和一个文本框)组成。当我单击“保存”按钮时,我可以从这三个控件中获取信息,但从通过数据库填充的两个控件中什么也得不到。如何获取前两个字段 <asp:GridView ID="gvA1" runat="server" AutoGenerateColumns="false" DataKeyNames="CodeNo" AutoGenerateSelectButton="false" Enabl

我有一个GridView,它由两个通过存储过程填充的数据库字段和三个用于用户输入的字段(两个复选框控件和一个文本框)组成。当我单击“保存”按钮时,我可以从这三个控件中获取信息,但从通过数据库填充的两个控件中什么也得不到。如何获取前两个字段

<asp:GridView ID="gvA1" runat="server" AutoGenerateColumns="false" DataKeyNames="CodeNo" AutoGenerateSelectButton="false" EnablePersistedSelection="True" Visible="false">
    <Columns>
        <asp:TemplateField Visible="false" >
            <ItemTemplate>
                <%#DataBinder.Eval(Container.DataItem, "CodeNo")%>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField ItemStyle-Wrap="true" ItemStyle-Width="400px" HeaderText="Violation">
            <ItemTemplate>
                <%#DataBinder.Eval(Container.DataItem, "CodeViolationCited") %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="A1Accordion_cbPool" runat="server" Text="Pool:" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="A1Accordion_cbSpa" runat="server" Text="Spa:" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Additional Comments" Visible="true">
            <ItemTemplate>
                <asp:TextBox ID="A1Accordion_tb" runat="server" TextMode="MultiLine"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
我想出来了,但是我没有足够长的时间通过链接发布解决方案,但是如果您更改了列,那么:

<asp:label ID="lblA1CodeNo" runat="server" text='<%# Eval("CodeNo") %>'></asp:label>

然后这些值可用…

请尝试:

<%# Bind("CodeViolationCited") %>

而不是

<%#DataBinder.Eval(Container.DataItem, "CodeViolationCited") %>

Eval是单向的,bind是双向的

试试:

<%# Bind("CodeViolationCited") %>

而不是

<%#DataBinder.Eval(Container.DataItem, "CodeViolationCited") %>

Eval是单向的,bind是双向的


将其更改为标签“对象”可使其可用。。。我是一个DBA,被要求建立一个网站,以便。。。它的工作原理我正在向前推进:)将其更改为标签“对象”使其可用。。。我是一个DBA,被要求建立一个网站,以便。。。它起作用了,我正在继续:)