Reputation: 123
I am using Visual Studio 2015 and Entity Framework 6. I have a gridview and I need to disable selection of rows where the column Status value is "completed".
This is what I have:
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="OrderID" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:Button ID="deleteButton" runat="server" CommandName="Delete" Text="Delete"
OnClientClick="return confirm('Are you sure you want to delete this order?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="OrderID" HeaderText="OrderID" InsertVisible="False" ReadOnly="True" SortExpression="OrderID" />
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" />
<asp:BoundField DataField="OrderDate" HeaderText="Order Date" DataFormatString="{0:MMMM d, yyyy}" SortExpression="OrderDate" />
<asp:BoundField DataField="FlowerName" HeaderText="Name" SortExpression="FlowerName" />
<asp:BoundField DataField="FlowerPrice" HeaderText="Arrangement Price" SortExpression="FlowerPrice" />
<asp:BoundField DataField="OrderMessage" HeaderText="Message" SortExpression="OrderMessage" />
<asp:CheckBoxField DataField="Vase" HeaderText="Vase" SortExpression="Vase" />
<asp:BoundField DataField="OrderCost" HeaderText="Total Cost" SortExpression="OrderCost" />
<asp:BoundField DataField="DeliverDate" HeaderText="Delivery Date" DataFormatString="{0:MMMM d, yyyy}" SortExpression="DeliverDate" />
<asp:BoundField DataField="OrderStatus" HeaderText="Order Status" SortExpression="OrderStatus" Visible="false" />
<asp:TemplateField>
<HeaderStyle Width="10%" />
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Width="150px" Height="150px" ImageUrl='<%#GetImagePath(Eval("OrderStatus").ToString())%>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
I've tried various methods already and I cannot seem to grasp how.
QUESTION 1: How to disable selection of rows with status column value of "Completed"
Side Question: How do I get the CustomerID field to show the table Customers First name/last name instead without messing up my gridview?
Upvotes: 0
Views: 2558
Reputation: 241
to disable selection of row with status completed
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[8].Text == "completed")//orderstatus index
{
e.Row.Enabled = false;
}
else
{
e.Row.Enabled = true;
}
}
}
Upvotes: 4