2017-02-01 5 views
1

У меня есть столбец в SQL:Как включить кнопку на основе значения сетки?

Статус

открыт Закрыть

и Gridview с BoundField значение = 'Статус'

Когда пользователь выбирает строку и статус == открыт то он должен отображать кнопку. В противном случае ist hiden.

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
 
{ 
 
\t string y = Data.Rows[GridView1.SelectedIndex][5].ToString(); 
 

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

<asp:Button Text="Accept" OnClick="btnAccept_Click" Visible="false" ID="btnAccept" runat="server" />

+2

И вопрос ??? – apomene

+0

Не работает. Кнопка всегда включена. Даже если visible = true – Olga

+0

Видимость не имеет ничего общего с тем, что кнопка включена или отключена. Используйте свойство Enabled Button: 'btnAccept.Enabled = (y ==" open ");' Также, если вы еще этого не сделали, рассмотрите стиль отключенных кнопок с помощью CSS 'input [type = button] [disabled],. .. {cursor: not-allowed;} ' – fnostro

ответ

0

Измените код, как этот

string y = GridView1.SelectedRow.Cells[5].Text; 
+0

Он выдает ошибку: object 'не содержит определения для« Text »и никакого метода расширения« Text », принимающий первый аргумент типа« объект », может быть найден (вы отсутствует директива using или ссылка на сборку?) – Olga

0

Это может быть решение:

string y = GriView1.SelecteRows[0].Cells[5].Value.ToString(); 
0

Это контр-интуитивно понятный, но GridView1.SelectedRow не установлен до тех пор, пока SelectedIndexChanged не завершится.

Также видимость не имеет ничего общего с тем, что кнопка включена или отключена. Используйте Enabled Свойство кнопки:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridView gv = (GridView) sender ; 
    btnAccept.Enabled = (gv.Rows[ gv.SelectedIndex ].Cells[5].Text == "open"); 
} 

Кроме того, если вы еще не сделали, рассмотреть стилизации кнопки инвалидов с помощью CSS:

input[type=button][disabled], 
button[disabled] 
{ 
    cursor:not-allowed; 
}