ОБНОВЛЕНИЕ:
Удалите кнопку редактирования сетки по умолчанию (удалите ShowEditButton = "True" из CommandField) и добавьте кнопку ссылки внутри другого ItemTemplate .Также установите атрибут CommandName кнопки редактирования ссылки для редактирования и (это поможет кнопке редактирования работать в качестве редактирования сетки по умолчанию).Затем вызовите событие OnClientClick кнопки редактирования ссылки javascript и выполните там свою логику.Также поместите две другие кнопки ссылки для обновления и отмены , их следует поместить в атрибут EditItemTemplate и CommandName , для каждой из них должно быть установлено updateи отмените соответственно ..
См. код ниже, чтобы увидеть реализацию,
Раздел Aspx,
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowUpdating="GridView1_RowUpdating" OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("sample1")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtValue" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkBtnEdit" runat="server" Text="Edit" CommandName="edit" OnClientClick="return ClearText(this.id)"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="lnkBtnUpdate" runat="server" Text="Update" CommandName="update"></asp:LinkButton>
<asp:LinkButton ID="lnkBtnCancel" runat="server" Text="Cancel" CommandName="cancel"></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Раздел Java Script,
<script language="javascript" type="text/javascript">
function ClearText(btnID)
{
var txtID=btnID.replace("lnkBtnEdit","txtValue");
var txtValue=document.getElementById(txtID);
alert(txtID);
txtValue.value="";
return true;
}
</script>
код позади,
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
populate();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//do update logic here
GridView1.EditIndex = -1;
populate();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
populate();
}
Надеюсь, это поможет вам ...