使用gridview中的按钮添加新列并将数据绑定到该列

时间:2015-04-25 15:13:21

标签: asp.net gridview

我在gridview表中添加了一个Print按钮,如下所示

<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");

1 个答案:

答案 0 :(得分:3)

使用模板字段

代替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");

    }