繁体   English   中英

当boundfield设置为false时,在编辑Gridview时获取特定列的值

[英]Get value of specific column while editing a Gridview when boundfield is set to false

boundfield设置为false时,如何在编辑gridview时获取某些特定单元格的值。

<asp:GridView ID="GridViewInvoice" runat="server" ShowHeaderWhenEmpty="true" DataKeyNames="DOID" AutoGenerateColumns="False" CssClass="mGrid" HeaderStyle-CssClass="th" PagerStyle-CssClass="pgr"
    Width="100%" BorderStyle="Solid" Style="overflow: auto" OnRowDataBound="GridViewInvoice_RowDataBound" OnRowEditing="GridViewInvoice_RowEditing" OnRowDeleting="GridViewInvoice_RowDeleting">
    <AlternatingRowStyle BackColor="#CCCCFF" />
    <Columns>
        <asp:BoundField DataField="Tax1" Visible="false" HeaderText="Tax1" SortExpression="Tax1" HeaderStyle-Width="7%" ItemStyle-CssClass="colHidden" HeaderStyle-CssClass="colHidden" ItemStyle-HorizontalAlign="Right" ReadOnly="false" />
    </Columns>
</asp:GridView>

如果其可见性设置为Hidden则无法访问BoundField中的BoundField值。 而是添加一个HiddenField并在GridView Edit Event中访问它。

将以下内容添加为GridView列

<asp:GridView ID="GridViewInvoice" runat="server" ShowHeaderWhenEmpty="true" DataKeyNames="DOID" AutoGenerateColumns="False" CssClass="mGrid" HeaderStyle-CssClass="th" PagerStyle-CssClass="pgr"
    Width="100%" BorderStyle="Solid" Style="overflow: auto" OnRowDataBound="GridViewInvoice_RowDataBound" OnRowEditing="GridViewInvoice_RowEditing" OnRowDeleting="GridViewInvoice_RowDeleting">
    <AlternatingRowStyle BackColor="#CCCCFF" />
    <Columns>
        <asp:BoundField DataField="Tax1" Visible="false" HeaderText="Tax1" SortExpression="Tax1" HeaderStyle-Width="7%" ItemStyle-CssClass="colHidden" HeaderStyle-CssClass="colHidden" ItemStyle-HorizontalAlign="Right" ReadOnly="false" />
       <asp:HiddenField ID="Tax1" runat="server" Value='<%#Eval("Tax1") %>'/>
    </Columns>
</asp:GridView>

代码隐藏

protected void GridViewInvoice_RowEditing(object sender, GridViewEditEventArgs e)
{
  HiddenField hf = (HiddenField)GridViewInvoice.Rows[e.RowIndex].FindControl("Tax1");

  if (hf != null)
  { 
      var value = hf.Value;
  }  
}

另外,如果您在GridView指定了一个值,则也可以使用DataKeyNames来获取值。

获取或设置一个数组,该数组包含GridView控件中显示的项目的主键字段的名称。

像这样

<asp:GridView ID="GridViewInvoice" runat="server" DataKeyNames="Tax1">
<Columns>
   <asp:HiddenField ID="Tax1" runat="server" Value='<%#Eval("Tax1") %>'/>
</Columns>
</asp:GridView>

然后得到价值,

protected void GridViewInvoice_RowEditing(object sender, GridViewEditEventArgs e)
{
    var value = GridViewInvoice.DataKeys[e.RowIndex]["Tax1"].ToString();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM