О ASP.NET Gridview - PullRequest
       14

О ASP.NET Gridview

1 голос
/ 04 октября 2009

Привет! Мне нужна помощь в реализации логики с использованием элемента управления Gridview в c #.

У меня есть сетка и много строк. В каждой строке есть кнопка, которую нужно нажать для пользователя. При каждом нажатии кнопки я обновляю выбранную запись в базе данных. Теперь, когда строка обновлена, мне нужно скрыть эту кнопку, чтобы предотвратить реакцию только для этой конкретной строки.
1. Если я использую это

<asp:CommandField ShowEditButton="True" EditText="select" />

, я не могу скрыть это. 2. Если я использую это

<asp:TemplateField HeaderText="Your Action">
  <ItemTemplate>
    <asp:Button
        ID="btnAccept"
        runat="server"
        Text="Accept" 
        OnClientClick="return confirm('Are you sure you want to Accept this offer?');" 
        onclick="btnAccept_Click" />
  </ItemTemplate>
</asp:TemplateField>

, я не могу получить индекс выбранной строки.

Надеюсь, я очистил то, что хочу спросить. Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 04 октября 2009

Использование свойства CommandArgument элемента управления Button указывает строку, по которой щелкнул пользователь:

<asp:TemplateField HeaderText="Your Action">
  <ItemTemplate>
    <asp:Button
        ID="btnAccept"
        runat="server"
        Text="Accept" 
        OnClientClick="return confirm('Are you sure you want to Accept this offer?');" 
        CommandName="Accept"
        CommandArgument='<%# Eval("RowId") %>'
        onclick="btnAccept_Click" />
  </ItemTemplate>
</asp:TemplateField>

В коде позади:

void btnAccept_Click(Object sender, CommandEventArgs e) 
{
    if (e.CommandName == "Accept")
    {
       string rowId = e.CommandArgument;
    }
}
2 голосов
/ 04 октября 2009

Продолжаем решение Canavars для 1):

void btnAccept_Click(Object sender, CommandEventArgs e) 
{
    if (e.CommandName == "Accept")
    {
       string rowId = e.CommandArgument;
       ((Button)sender).Visible = false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...