Во-первых, чтобы обработать кнопку, которая была нажата в TemplateField, вы хотите подписаться на метод RowCommand
:
<asp:GridView runat="server" ID="gv" OnRowCommand="yourMethod">
Вы можете иметь несколько кнопок в вашей сетке и предположить, что вызвалоклик со свойством CommandName
.Приведенный ниже код показывает это, а также, как получить строку кнопки, на которой была нажата кнопка, и извлечь другие элементы управления из этой строки, чтобы вы могли получить их значения.
<asp:TemplateField>
<ItemTemplate>
<asp:Button CommandName="yourButtonName" runat="server" />
Код позади
protected void yourMethod(object sender, GridViewCommandEventArgs e) {
if (e.CommandName == "yourButtonName") {
GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
TextBox someTextBox = row.FindControl("tb") as TextBox;
string textValue = someTextBox.Text;
}
}