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>
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/libr ary/system .web.ui.we bcontrols. gridview.d atakeyname s.aspx
If you scroll down, there are examples in vb and c# that should easily fit into your code.
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/
If you scroll down, there are examples in vb and c# that should easily fit into your code.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
This does not help us. What do you mean exactly "it no longer works." Any error or something else?