написание кода в событии нажатия кнопки в gridview

#asp.net

#asp.net

Вопрос:

я добавил элемент управления кнопкой в gridview, и я хочу перенаправить на другую страницу в событии нажатия кнопки, а также я хочу получить доступ к значениям выбранной строки в gridview и показать эти значения на другой странице в событии нажатия кнопки, которое находится внутри gridview, может кто-нибудь, пожалуйста, помочь мне в этом.

Ответ №1:

это должно быть полезно:http://msdn.microsoft.com/en-us/library/bb907626.aspx

для доступа к значениям внутри события RowCommand сначала найдите свою строку (по индексу):

int index = Convert.ToInt32(e.CommandArgument);

GridViewRow row = MyGridView.Rows[index];

а затем элементы управления внутри него, которые содержат нужные вам значения:

Label MyLabel= (Label)row.FindControl(MyLabel);

после этого все, что вам нужно сделать, это перейти на свою страницу и отправить с ней значения из ваших элементов управления (сделайте это с помощью querystring):

Server.Transfer("MyPage.aspx?value=" MyLabel.Text)

здесь вы можете прочитать больше о RowCommand событии gridview: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

Ответ №2:

Вам нужно добавить либо поле ButtonField, либо поле TemplateField с кнопкой внутри, а затем вы можете добавить свой код в RowCommand и использовать e.CommandName и e.CommandArgument

Для перенаправления вы можете использовать Response.Перенаправление (адрес)

Чтобы увидеть значения, зависит от того, где в программе вы хотите это сделать. Если во время привязки к данным вы можете использовать dataitem («столбец»). Вне привязки к данным вы можете перейти через Gridview.Соберите строки для нужной строки, а затем посмотрите на строку.Ячейки (номер столбца).Введите текст, чтобы увидеть значение.

Ответ №3:

у нас есть событие в gridview под названием gridview rowcommand event, в котором вы можете написать код для перенаправления на другую страницу с помощью button. Сначала вам нужно привязать значение, которое вы хотите передать, к свойству кнопки, называемому commandargument.

 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    Response.Redirect("abc.aspx?id="   e.CommandArgument);
    //here id means passing the value using querystring to another page.
}
  

Ответ №4:

  <asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:BoundField HeaderText="ID" DataField="ID" />
        <asp:BoundField HeaderText="Name" DataField="fullname" />
        <asp:TemplateField HeaderText="Action">
            <ItemTemplate>
                <asp:Button runat="server" ID="btnDelete" Text="Delete" OnClick="btnDelete_Click" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
  

// Это фокусирует текущую строку, в которой находится кнопка. вы можете выполнять все события серверных контроллеров
// вместо кнопки, например, LinkButton, изменяется индекс выпадающего списка…

  protected void btnDelete_Click(object sender, EventArgs e)
    {


        Button btn = (Button)sender;
        GridViewRow gvRow = (GridViewRow)btn.NamingContainer;

        string id = gvRow.Cells[0].Text;
        string name = gvRow.Cells[1].Text;
        //use these values in query string or any logic you prefer for cross page posting
        Response.Redirect("your URL ?id="   id   "amp;name="   name);

    }