//No declaring datasource this time, that's in the code behind because I need to update shit, you'll see it there
<asp:GridView
id="UsersGridView"
runat="server"
AutoGenerateEditButton="True" // makes a column with an edit button, it doesn't automatically do everything
AutoGenerateColumns = "false" //gotta put in all the columns I need, not just the remove one like last time. This is for the update
//these three you'll see
OnRowCancelingEdit="UsersGridView_RowCancelingEdit"
OnRowUpdating="UsersGridView_RowUpdating"
OnRowEditing="UsersGridView_RowEditing"
//style
BackColor="White" BorderColor="#3366CC" BorderStyle="None"
BorderWidth="1px" CellPadding="4">
<Columns>
//declaring columns. Skip the remove one (the first) and take a look at what is needed for the editing and updating to work
<asp:TemplateField HeaderText="Remove users" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" ShowHeader="false" HeaderStyle-Height="40px">
<ItemTemplate>
<asp:LinkButton ID="Remove" Text="Remove" OnClick="RemoveUser" CommandArgument='<%# Eval("userName") %>' CommandName="RemoveUser" runat="server"></asp:LinkButton>
</ItemTemplate>
<HeaderStyle Height="40px" CssClass="leftborder"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="33px"></ItemStyle>
</asp:TemplateField>
//here we go, not remove.
<asp:TemplateField HeaderText="User Name">
<ItemTemplate>
<asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("userName") %>'></asp:Label>//a label to show something
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="UserNameEdit" Width="100" Text='<%# Eval("userName") %>' Enabled="true" runat="server"></asp:TextBox>// a textbox to edit. the rest is the same (give or take)
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Email">
<ItemTemplate>
<asp:Label ID="Emaillbl" runat="server" Text='<%# Eval("email") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="EmailEdit" Width="150" Text='<%# Eval("email") %>' Enabled="true" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
//checkbox here! Slightly different but around the same.
<asp:TemplateField HeaderText="Admin">
<ItemTemplate>
<asp:CheckBox ID="IsAdminBox" runat="server" Enabled="false" Checked='<%# bool.Parse(Eval("isAdmin").ToString()) %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="IsAdminBoxEdit" runat="server" Checked='<%# bool.Parse(Eval("isAdmin").ToString()) %>' Enabled="true" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
//style
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
<RowStyle BackColor="White" ForeColor="#003399" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<SortedAscendingCellStyle BackColor="#EDF6F6" />
<SortedAscendingHeaderStyle BackColor="#0D4AC4" />
<SortedDescendingCellStyle BackColor="#D6DFDF" />
<SortedDescendingHeaderStyle BackColor="#002876" />
</asp:GridView>