Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
<asp:GridView ID="GridViewYardSales" runat="server" CssClass="yui-datatable-theme" AutoGenerateColumns="false" DataSourceID="YardSaleDataSource" AllowSorting="true" OnRowCommand="GridViewYardSales_RowCommand" OnRowCreated="GridViewYardSales_RowCreated" DataKeyNames="ItemId"> <RowStyle CssClass="data-row" /> <AlternatingRowStyle CssClass="alt-data-row" /> <Columns> <asp:BoundField DataField="ItemId" HeaderText="ItemId" ReadOnly="True" SortExpression="ItemId" Visible="false"></asp:BoundField> <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"> <ItemTemplate> <asp:LinkButton ID="LinkButtonViewOnMap" runat="server" OnClientClick=<%# String.Format("javascript:ViewOnMapById('{0}');", Eval("ItemId")) %>> Map</asp:LinkButton><br /> <asp:LinkButton ID="LinkButtonItinerary" runat="server" CommandName="Command_Itinerary" CommandArgument='<%# Eval("ItemId") %>'>Itinerary </asp:LinkButton><br /> <asp:LinkButton ID="LinkButtonViewDetail" runat="server" CommandName="Command_ViewItemDetail" CommandArgument='<%# Eval("ItemId") %>'>Detail </asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Title"> <ItemTemplate> <%# Eval("Title") %><br /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Date"> <ItemTemplate> <%# Eval("Time") %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
protected void GridViewYardSales_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //Retrieve LinkButton control int m_RowIndex = e.Row.RowIndex; string id = GridViewYardSales.DataKeys[m_RowIndex].Value.ToString(); LinkButton lb = (LinkButton)e.Row.FindControl("LinkButtonItinerary");
if (IsItemAlreadyInItinerary(id)) { lb.Text = "Remove"; } else { lb.Text = "Add"; } } }
protected void GridViewYardSales_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Command_Itinerary") { string id = e.CommandArgument.ToString();
GridViewRow selectedRow = (GridViewRow)(((Control)e.CommandSource).NamingContainer); LinkButton lb = (LinkButton)selectedRow.FindControl("LinkButtonItinerary");
if (!IsItemAlreadyInItinerary(id)) { AddItemToItinerary(id); lb.Text = "Remove"; } else { RemoveItemFromItinerary(id); lb.Text = "Add"; } } else if (e.CommandName == "Command_ViewItemDetail") { string id = e.CommandArgument.ToString(); Response.Redirect("ViewSale.aspx?id=" + id); } }
Remember Me