Solved

How to change deleteText of command field in Grid view?

Posted on 2008-10-21
4
965 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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

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 gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

777 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