2012-04-17 2 views
0

Я использую OnClick событие EditButton в GridViewOnClick событие EditButton в GridView

protected void editclick(object sender, EventArgs e) 
{ 
    try 
    { 
     Button EditButton = (Button)gvUserMaster.FindControl("edit_btn"); 
     tblAddEdit.Visible = true; 
    } 
    catch(Exception ex) 
    { 
    } 
} 

Но я получаю исключение:

Несколько элементов управления с тем же идентификатором «lblUserName» были найдены. FindControl требует, чтобы элементы управления имели уникальные идентификаторы.

Я пробовал использовать foreach loop, но это тоже не сработало.

+1

Не могли бы вы показать свой код ASPX? Сообщение об ошибке указывает на некоторое 'lblUserName'. –

+0

Хорошо, что в lblUsername была избыточность. Я решил это, но могу ли вы получить идентификатор строки кнопки редактирования. – asifa

ответ

0

Используйте поле шаблона кнопки добавить как

<asp:TemplateField HeaderText="Edit"> 
    <ItemTemplate> 
     <asp:LinkButton runat="server" ID="lnkEdit" Text="Edit" 
      CausesValidation="false" CommandArgument='<%# Container.DataItemIndex %>' 
      OnCommand="lnkEdit_Command"></asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 

и в коде позади:

protected void lnkEdit_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e) 
{ 
    id = e.CommandArgument.ToString(); 
    --add your code 
} 

вы получите индекс строки в ид

0

Я решил, написав функцию редактирования на нажмите кнопку «Изменить» и введите идентификатор строки выбранной строки.

int rindex = (((GridViewRow)(((Button)(sender)).Parent.BindingContainer))).RowIndex; 
Button EditButton = (Button)gvUserMaster.Rows[rindex].FindControl("btnEdit"); 

rindex дает вам rowindex и EditButton дает вам идентификатор выбранной строки.

Смежные вопросы