Member 12802669 Ответов: 2

Как включить кнопку на основе значения gridview?


I have a column in SQL:

Status
open 
Close

and Gridview with Boundfield value='Status'

When a user selects a row and the Status == open then it should display a button. Otherwise ist hiden.


Что я уже пробовал:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {


        string y = Data.Rows[GridView1.SelectedIndex][5].ToString();
      

        if (y == "open")
        {
           btnAccept.Visible = true;
        }
        else
        {
            btnAccept.Visible = false;
        }
    }

Richard MacCutchan

Вы использовали свой отладчик, чтобы увидеть, какое значение находится в y в этот момент?

F-ES Sitecore

Это вряд ли сработает, вы должны помнить, что GridView-это элемент управления, используемый для отображения данных, а не для хранения данных. У вас будет пустое пространство, новые линии, элементы и все виды в ваших клетках, о которых вы не знаете. Вместо этого получите соответствующие данные из источника данных, который вы привязываете к сетке, так как это будут необработанные данные, которые вам нужны.

Karthik_Mahalingam

присутствует ли кнопка в каждой строке?

2 Ответов

Рейтинг:
1

avinashkumar0509

 //  I think you should hide show the button on gridview_rowdatabound event like this.

       //look this is just the pseudo code
        //put the button you want to show/hide in the template field of gridview and try to find the control in the below event [OnRowDataBound]
        protected void gridview1_rowdatabound(object sender, GridViewRowEventArgs e)
        {
            //find the button control
            Button btnStatus = (Button)Gridview1.FindControl("yourControlName");
            foreach (GridViewRow gvrow in Gridview1.Rows)
            {
                // now read the status column value and enable/disable the button
                string status = gvrow.Column[yourColumnIndexStartingFrom 0].Text;
                if (status == "Open")
                { btnStatus.Visible = true; }
                else
                { btnStatus.Visible = false; }

            }
        }
// Let me know if it helps or not


Рейтинг:
0

Ramesh Kumar Barik

В соответствии с вашим вопросом вы хотите показать или скрыть свою кнопку в соответствии со статусом сетки.
Таким образом, это можно сделать в событии GridView1_RowDataBound.
Обратитесь к этому коду, он может вам помочь.

protected void GridView1_RowDataBound (отправитель объекта, GridViewRowEventArgs e)
{

если (электронная.Подряд.RowType == DataControlRowType.Строкаданных)
{
строковое значение = Эл.Подряд.Клеток[Индекс].Текст;// здесь указатель, где ваш статус показывает
Button btn = (Button)GridView1. Columns[Index]; / / здесь индекс, где существует ваша кнопка
если (статус = = " открыто")
{ БТН.Видимое = истинное; }
ещё
{ БТН.Видна = ложь; }
}
}