Solved

How to change deleteText of command field in Grid view?

Posted on 2008-10-21
4
964 Views
Last Modified: 2012-05-05
hi all,
i have a delete command field in my grid view, when bind the data source, i try to change the delete text according to another bound field.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="personID" OnRowDataBound="GridView1_RowDataBound" OnSorting="GridView1_Sorting" OnRowDeleting="GridView1_RowDeleting">

        <Columns>

            <asp:BoundField DataField="personID" HeaderText="personID" ReadOnly="True" SortExpression="personID" />

<asp:BoundField DataField="flag" HeaderText="flag" SortExpression="flag" />

<asp:CommandField DeleteText="Exclude" ShowDeleteButton="True" ButtonType="button"></asp:CommandField>//when boundfield "flag" is true, the deleteText of commandfield should be 'Exclude', otherwise, it is 'Include'

 </Columns>

    </asp:GridView>
 

-------------------------------------

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    {

 DataRowView drv = (DataRowView)e.Row.DataItem;
 

//how to get the command field in this event??? the following code won't work cos i cannot get the command field, pls help!!!!
 

Commandfield btn = (Commandfield)e.Row.cell[2].control(0);
 

if(drv["flag"].ToString() == "1")

{

    btn.DeleteText = "Exclude";

}

else

{

   btn.DeleteText = "Include";
 

}

                        

    }

Open in new window

0
Comment
Question by:viola123
  • 2
  • 2
4 Comments
 
LVL 13

Expert Comment

by:crazyman
ID: 22765956
Button btn = e.Row.Cells[2].Controls[0] as Button; //May be index 1,2,3,4,5,6,7 who knows...
if(drv["flag"].ToString() == "1")
{
    btn.Text = "Exclude";
}
else
{
   btn.Text = "Include";
 
}
0
 
LVL 6

Author Comment

by:viola123
ID: 22766045
hi,
i tried to cast the command field to button, but it gives me exception said the datacontrol field cannot be cast to button.
0
 
LVL 13

Accepted Solution

by:
crazyman earned 500 total points
ID: 22766513
This worked for me
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

        {

            

            if (e.Row.RowType == DataControlRowType.DataRow)

            {

                DataRowView drv = (DataRowView)e.Row.DataItem;
 

                Button btn = (Button)e.Row.Cells[2].Controls[0];
 

                if (drv["flag"].ToString() == "1")

                {

                    btn.Text = "Exclude";

                }

                else

                {

                    btn.Text = "Include";
 

                }

            }
 

        }

Open in new window

0
 
LVL 6

Author Comment

by:viola123
ID: 22772024
hi,
i tried it again, it works. don't know what's going on last time.

thanks a lot
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
Delivering innovative fully-managed cloud services for mission-critical applications requires expertise in multiple areas plus vision and commitment. Meet a few of the people behind the quality services of Concerto.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now