在 gridview 中添加一个带有按钮的新列并将数据绑定到它

Adding a new column with buttons in gridview and binding data to it

我在我的 gridview table 中添加了一个打印按钮,如下所示

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                    AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" 
                    DataSourceID="SqlDataSource2" 
                    onselectedindexchanged="GridView1_SelectedIndexChanged" Width="522px">
                    <Columns>
                        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                            ReadOnly="True" SortExpression="ID" />
                        <asp:BoundField DataField="Story_number" HeaderText="Story_number" 
                            SortExpression="Story_number" />
                        <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
                        <asp:BoundField DataField="Memory_card" HeaderText="Memory_card" 
                            SortExpression="Memory_card" />
                        <asp:BoundField DataField="Story_Name" HeaderText="Story_Name" 
                            SortExpression="Story_Name" />
                        <asp:ButtonField ButtonType="Button" Text="print" />
                    </Columns>
                </asp:GridView>

请帮助我编写此按钮的 C# 代码。当按下按钮时,我需要它重定向到一个页面(print.aspx)。我一直在尝试以下代码,但它不起作用。在此先感谢您的帮助。

Session["id"] = GridView1.SelectedRow.Cells[0].Text;
Response.Redirect("Print.aspx");

使用模板字段代替 buttonField

<asp:TemplateField>
    <ItemTemplate>
        <asp:ImageButton ID="ButtonPrint" runat="server" CssClass="yourCssClassIsNeedIt" OnClick="printRegFunction"
            CommandArgument='<%# Bind("id") %>' ImageUrl="images/button.png"/>
    </ItemTemplate>
</asp:TemplateField>

您的服务器代码或后台代码:

protected void printRegFunction(object sender, ImageClickEventArgs e)
    {
        Session["id"] = ((ImageButton)sender).CommandArgument;
        Response.Redirect("Print.aspx");

    }