wiredlime2015
wiredlime2015

Reputation: 123

ASP.net Gridview Disable selection of certain rows

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

Answers (1)

banksy
banksy

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

Related Questions