Link to home
Start Free TrialLog in
Avatar of JessyRobinson1234
JessyRobinson1234

asked on

How can I hide a boundfield in Gridview to Visible="false" and still make it work?

The code below works fine but I don't want to display the action_key label. When I change the attribute Visible="True" to false it no long works. Any alternatives?
<asp:GridView ID="gvActions" runat="server" AutoGenerateColumns="False" AutoGenerateEditButton="True" DataSourceID="sdsgvActions"  AllowPaging="True" AllowSorting="True">
<Columns>
	<asp:BoundField DataField="PIR_Key" HeaderText="PIR_Key" InsertVisible="False" 	SortExpression="PIR_Key" Visible="False" />
	<asp:BoundField DataField="Action_Key"  HeaderText="Key" InsertVisible="False" 
                                    Visible="True"    />
	<asp:TemplateField HeaderText="Action Item" SortExpression="Action_Item">
		<EditItemTemplate>
		<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Action_Item") %>' 		TextMode="MultiLine"></asp:TextBox>
		</EditItemTemplate>
		<ItemTemplate>
		<asp:Label ID="Label2" runat="server" Text='<%# Bind("Action_Item") %>'></asp:Label>
		</ItemTemplate>
		<ItemStyle VerticalAlign="Top" Wrap="True" />
	</asp:TemplateField>
	<asp:TemplateField HeaderText="Action Status" SortExpression="Action_Status">
		<EditItemTemplate>
		<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Action_Status") 		%>' TextMode="MultiLine"></asp:TextBox>
		</EditItemTemplate>
		<ItemTemplate>
		<asp:Label ID="Label1" runat="server" Text='<%# Bind("Action_Status") 		%>'></asp:Label>
		</ItemTemplate>
		<ItemStyle VerticalAlign="Top" Wrap="True" />
	</asp:TemplateField>
	<asp:BoundField DataField="User" HeaderText="User" SortExpression="User" 	ReadOnly="True">
	<ItemStyle VerticalAlign="Top" />
	</asp:BoundField>
	<asp:TemplateField HeaderText="Action Owner" SortExpression="Action_Owner">
	<EditItemTemplate>
	<asp:DropDownList ID="ddlCeva_owner" runat="server" DataSourceID="sdsCeva_Owner"
	DataTextField="Ceva_Owner_Name" DataValueField="Ceva_Owner_Name" SelectedValue='<%# 	Bind("Ceva_Owner_Name") %>' CssClass="form">
	</asp:DropDownList>
	<asp:SqlDataSource ID="sdsCeva_Owner" runat="server" ConnectionString="<%$ 	ConnectionStrings:BusDevConnectionString %>" SelectCommand="View_Ceva_Owner_DD" 	SelectCommandType="StoredProcedure"></asp:SqlDataSource>
	</EditItemTemplate>
	<ItemTemplate>
	<asp:Label ID="lblActionOwner" runat="server" Text='<%# Bind("Action_Owner") 	%>'></asp:Label>
	</ItemTemplate>
	</asp:TemplateField>
	<asp:CheckBoxField DataField="Action_Closed" HeaderText="Closed" 	SortExpression="Action_Closed" />
	</Columns>
<FooterStyle BackColor="#CCCC99" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />
<RowStyle BackColor="#F7F7DE" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="sdsgvActions" runat="server" ConnectionString="<%$ ConnectionStrings:BusDevConnectionString %>" SelectCommand="View_Opportunity_Actions_GV" SelectCommandType="StoredProcedure" UpdateCommand="Update_Opportunity_Actions_GV" UpdateCommandType="StoredProcedure">
<SelectParameters>
  	<asp:QueryStringParameter Name="Pir_Key" QueryStringField="Key" Type="Int32" />
</SelectParameters>
<UpdateParameters>
 	<asp:Parameter Name="Action_Item" Type="String" />
 	<asp:Parameter Name="Action_Status" Type="String" />
 	<asp:Parameter Name="Ceva_Owner_Name" Type="String" />
 	<asp:Parameter Name="Action_Key" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>

Open in new window

Avatar of prairiedog
prairiedog
Flag of United States of America image

>>> it no long works.
This does not help us. What do you mean exactly "it no longer works." Any error or something else?
I would assume from the code posted that Action_Key is the primary key that the update is using.
So by "no long[er] works" I would imagine your update doesn't have anything to key off of.

If you want to not show the field, but still use it, the Gridview has a feature called DataKeys specifically made for this purpose.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeynames.aspx
If you scroll down, there are examples in vb and c# that should easily fit into your code.

ASKER CERTIFIED SOLUTION
Avatar of M3mph15
M3mph15
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial