ASP.NET GridView, изменить свойства в кнопке из ItemTemplate - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть GridView, который отображает книги из базы данных.

В каждой строке отображается кнопка «Удалить / Изменить». Когда пользователь нажимает кнопку «Изменить», я хочу, чтобы появлялись кнопки «Отмена» и «Обновление», а кнопка «Редактировать» отключалась.

Я думал об использовании события onClick для кнопки «Редактировать» вместе со строкой GridView для получения соответствующей кнопки на основе строки, для свойства «Включить» кнопки «Изменить» было установлено значение «false», а для кнопок «Отмена» и «Обновить» - значение true.

Однако, похоже, я не могу изменить свойства даже для кнопки «Правка», которую я получаю из обработчика событий.

Вот код.

protected void EditButton_Click(object sender, EventArgs e)
{
    Button Sender = (Button)sender;
    Sender.Text = "??"; //THIS CHANGE IS NOT APPLIED!!

    //Button Sender = (Button)sender;
    //GridViewRow grdRow = (GridViewRow)Sender.Parent.Parent;
    //Button btn = (Button)grdBooks.Rows[grdRow.RowIndex].Cells[1].FindControl("CancelButton");
} 

<asp:GridView
    id="grdBooks"
    DataSourceID="srcBooks"
    DataKeyNames="Product_ID"

    AutoGenerateColumns="false"
    CssClass="products"
    GridLines="none"
    Runat="server" OnRowCreated="grdBooks_RowCreated">
   <Columns>
     <asp:TemplateField>
      <ItemTemplate>
        <asp:Button  CausesValidation="false" ID="DeleteButton" CommandName="Delete" runat="server" Text="Delete" />
        <asp:Button  CausesValidation="false" ID="EditButton" CommandName="Edit" runat="server" Text="Edit" OnClick="EditButton_Click" />    
        <asp:Button  CausesValidation="false" ID="CancelButton"  Enabled="false" Visible="true" CommandName="Cancel" runat="server" Text="Cancel" />  
        <asp:Button  CausesValidation="false" ID="UpdateButton"  Enabled="false" Visible="true" CommandName="Update" runat="server" Text="Update" />  
      </ItemTemplate>
   </asp:TemplateField>
    <%-- <asp:CommandField  ButtonType="Button"  ShowEditButton="true"/>--%>
    <asp:BoundField 
        DataField="ISBN" 
        ReadOnly="true"
        HeaderText="ISBN" />
    <asp:BoundField 
        DataField="Title"
        ReadOnly="true"
        HeaderText="Title" />
    <asp:BoundField 
        DataField="First_Name" 
        ReadOnly="true"
        HeaderText="First Name" />
    <asp:BoundField 
        DataField="Last_Name" 
        ReadOnly="true"
        HeaderText="Last Name" />   
     <asp:BoundField 
        DataField="Price" 
        HeaderText="Price" />
    <asp:BoundField 
        DataField="Quantity" 
        HeaderText="Quantity" />
    </Columns>
</asp:GridView>    

Ответы [ 2 ]

0 голосов
/ 03 декабря 2009

Хорошо, все очень просто, в GridView есть этот красивый тег, который делает именно то, что я хочу .. Спасибо за просмотр, надеюсь, этот пост поможет больше niewbies ..

<EditItemTemplate>
        <asp:Button  CausesValidation="false" ID="CancelButton"  CommandName="Cancel" runat="server" Text="Cancel" />  
        <asp:Button  CausesValidation="false" ID="UpdateButton"  CommandName="Update" runat="server" Text="Update" />  
</EditItemTemplate>
0 голосов
/ 03 декабря 2009

После обработки события страница, вероятно, перезагружается и сбрасывает исходный текст.

Может быть, вы могли бы использовать JavaScript, чтобы делать то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...