2012-04-07 2 views
3

Мне нужно настроить таргетинг, когда я нажимаю кнопку ссылки, чтобы получить индекс строки. Однако, я не понимаю.Как я могу получить индекс строки, когда я нажимаю кнопку ссылки в gridview

Моей C# коды:

int rowIndex = Convert.ToInt32(e.CommandArgument); 

когда коды приходят сюда дают ошибку ({ «Входная строка была не в правильном формате.»}), Однако, это работает, например, когда я нажимаю buttonfield. как мне это сделать?

asp.net коды

<asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton2" runat="server" CommandName="View"><%#Eval("RSS_Title") %></asp:LinkButton> 
      </ItemTemplate> 

ответ

6

Я хотел бы сделать это что-то вроде этого:

ASPX

<asp:GridView ID="YourGrid" 
       OnRowCommand="YourGrid_RowCommand" 
       OnRowCreated="YourGrid_RowCreated" 
       runat="server"> 
    <Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:LinkButton ID="LinkButton2" runat="server" CommandName="View"> 
      <%#Eval("RSS_Title") %></asp:LinkButton> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

CS

protected void YourGrid_RowCommand(Object sender, GridViewCommandEventArgs e) 
{ 
    if(e.CommandName=="View") 
    { 
     int index = Convert.ToInt32(e.CommandArgument); 
    } 
} 
protected void YourGrid_RowCreated(Object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var LinkButton2 = (LinkButton)e.Row.FindControl("LinkButton2"); 
     LinkButton2.CommandArgument = e.Row.RowIndex.ToString(); 
    } 

} 
+0

@ ответ sarvar206 в решить мою проблему благодаря – leventkalay92

+0

@ sarvar206 ответ будет просто работать первая строка. Если у вас 10 строк, индекс строки будет равен 1. Это приведет к тому, что вы будете выбирать значения из одной строки все время. Если это то, что вы хотите, тогда сделайте это. Еще один ответ даст вам целевую строку в команде строки – Arion

+0

да, она просто принимает статическое значение. Если требуется динамическое значение, то его значение нужно установить из кода позади или с помощью команды Eval. Спасибо – sarwar026

2

Пожалуйста, используйте следующие:

<asp:LinkButton ID="LinkButton2" runat="server" CommandName="View" CommandArgument="1"><%#Eval("RSS_Title") %></asp:LinkButton> 

Я имею в виду, добавить CommandArgument.

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