2016-01-21 3 views
0

Итак, у меня есть сетка, заполняемая хранимой процедурой SQL. Все нормально. У меня есть поле кнопки, которое я добавил, где, когда вы нажимаете, будет просто отображаться скрытая метка. Я хочу, чтобы он делал что-то еще, но это тест, поэтому я вижу, получаю ли я правильную строку.Gridview ButtonField Не работает

protected void ServiceList_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "ServiceRestart") 
    { 
     int index = Convert.ToInt32(e.CommandArgument); 
     GridViewRow selectedRow = ServiceList.Rows[index]; 
     TableCell serviceName = selectedRow.Cells[1]; 
     string service = serviceName.Text; 

     Label1.Visible = true; 
     Label1.Text = service; 
    } 
} 

Вот код на GridView

<asp:GridView ID="ServiceList" runat="server" AllowSorting="True" AutoGenerateColumns="False" BorderStyle="Solid" BorderWidth="2px" OnRowCommand="ServiceList_RowCommand"> 
    <Columns> 
     <asp:BoundField DataField="ServerName" HeaderText="Server Name" /> 
     <asp:BoundField DataField="ServerIP" Visible="False" /> 
     <asp:BoundField DataField="DisplayName" HeaderText="Service Name" /> 
     <asp:BoundField DataField="Status" HeaderText="Status" /> 
     <asp:ButtonField HeaderText="Restart" Text="Restart" ButtonType="Link" CommandName="ServicResStart" /> 
    </Columns> 
</asp:GridView> 

Когда я щелкаю по ссылке, ничего не происходит.

РЕДАКТИРОВАТЬ: И я думаю, что другой вопрос будет, если gridview заполняется из SQL, как событие click известно, какая строка нажата?

ответ

0

Так что я получил эту работу, если кто-то работает в той же проблеме. В основном объединены две строки в новую строку serviceName.

int index = Convert.ToInt32(e.CommandArgument); 
GridViewRow selectedRow = ServiceList.Rows[index]; 
var serviceName = selectedRow.Cells[1].Text; 
Смежные вопросы