我不知道在哪里为该操作编写代码。
我试图通过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页。
我的要求是,我想显示用于编辑的编辑图标,而不是编辑链接。 当我单击“编辑”图标时,它将根据我的要求工作。
答案 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");