如何将gridview中选定行的数据传输到另一个aspx页面到asp控件中?

时间:2019-06-27 19:15:44

标签: c# asp.net

我不知道在哪里为该操作编写代码。

我试图通过Cathy Zou的链接https://forums.asp.net/t/2130391.aspx?RowEditing+in+GridView+in+c+来实现代码。但是不明白背后的代码。

这是我的gridview代码。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1"  >
     <Columns>                            
         <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" />
         <asp:BoundField DataField="pass" HeaderText="pass" SortExpression="pass" />
         <asp:CommandField ShowDeleteButton="false" ShowEditButton="True" ButtonType="Image" HeaderText="Edit" EditImageUrl="~/images/editicon.jpg"/>
         <asp:CommandField ShowDeleteButton="True" ShowEditButton="false"  ButtonType="Image" HeaderText="delete" DeleteImageUrl="~/images/deleteicon.png"/>
     </Columns>
     <HeaderStyle CssClass="gridviewheader" />
     <RowStyle CssClass="gridviewrow" />
</asp:GridView>

这是我的代码隐藏代码。

public string cnstring = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\Database1.mdf;Integrated Security=True";

protected void Page_Load(object sender, EventArgs e)
{
   if(!this.IsPostBack)
   {
       binddata();
   }
}

protected void binddata()
{

}

我有两个页面,分别称为addproduct.aspx和editproduct.aspx。在addproduct.aspx页面中,我具有gridview以及Edit和delete命令字段。当我单击“编辑”时,它应将我重定向到具有选定行数据的editproduct.aspx页。

我的要求是,我想显示用于编辑的编辑图标,而不是编辑链接。 当我单击“编辑”图标时,它将根据我的要求工作。

1 个答案:

答案 0 :(得分:0)

我建议添加一个TemplateField而不是CommandField,因此您可以添加一个asp:Button,如下所示:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id">
    <Columns>
        <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" />
        <asp:BoundField DataField="pass" HeaderText="pass" SortExpression="pass" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button runat="server"  ID="deleteButton" OnClick="deleteButton_Click" Text="Delete"/>                    
            </ItemTemplate>
            <ItemTemplate>
                <asp:Button runat="server" ID="editButton" OnClick="editButton_Click" Text="Edit"/>
            </ItemTemplate>
        </asp:TemplateField>            
    </Columns>
    <HeaderStyle CssClass="gridviewheader" />
    <RowStyle CssClass="gridviewrow" />
</asp:GridView>

然后在addproduct.aspx的OnClick事件中,捕获行数据并将其发送到editproduct.aspx,如下所示:

string id = GridView1.SelectedRow.Cells[0].Text;
//sending the datafield "id" to the other webform
Response.Redirect("editproduct.aspx?idParameter=id");