![](/img/trans.png)
[英]Gridview getting value of a BoundField set to Visible=False
[英]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.